- PR -

アップロード時のダイアログボックスで、Excelのみ入力可にしたい

1
投稿者投稿内容
おおたか
会議室デビュー日: 2005/03/31
投稿数: 11
投稿日時: 2005-03-31 12:59
いつも勉強させていただいております。
VB.NET開発初心者おおたかです。
現在、ExcelからデータをアップロードするWebアプリケーションを
作成しています。

<問題>
アップロードするファイルを指定するために、HTMLコントロールの
FileFieldを"サーバーコントロールとして実行"させています。
参照ボタンを押すとダイアログボックスが開きますが、その際
ファイルの種類を"*.xls"に限定したいのですが、うまくいきません。

<試していること>
HtmlInputFile.Accept プロパティを利用しようとしています。
下記サイトを参考にしています。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwebuihtmlcontrolshtmlinputfileclassaccepttopic.asp

よろしくお願いいたします。
おおたか
会議室デビュー日: 2005/03/31
投稿数: 11
投稿日時: 2005-03-31 13:15
自己レスです。

参考にした記述は、下記のとおりです。

<input id="File1"
  type="file"
  accept="image/*"
  runat="server"/>

acceptでimageファイルのみ、という指定をしていますが、
実際にサンプルを動かしたところ、
・すべてのファイル
・画像ファイル
・HTMLファイル
が選択できている、というのが現状です。

きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-03-31 13:28
おおたかさん、こんにちは。

引用:

下記サイトを参考にしています。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwebuihtmlcontrolshtmlinputfileclassaccepttopic.asp


↑ここに、

引用:

メモ このプロパティがサポートされるかどうかは、ブラウザに依存します。使用するブラウザで、このプロパティがサポートされているかどうかを確認してください。


って書いてありますけど…。

ちなみに当方の環境(WinXp SP2 + IE6 SP2)でも、ファイル種別を制限する事は出来ませんでした。
おおたか
会議室デビュー日: 2005/03/31
投稿数: 11
投稿日時: 2005-03-31 13:56
きくちゃんさん、ご回答ありがとうございます。

引用:

メモ このプロパティがサポートされるかどうかは、ブラウザに依存します。使用するブラウザで、このプロパティがサポートされているかどうかを確認してください。



引用:

ちなみに当方の環境(WinXp SP2 + IE6 SP2)でも、ファイル種別を制限する事は出来ませんでした。



ブラウザに依存するのであれば、当機能は利用しないほうがよいですね。

他の方法がないか探してみます。
どうにもならなければ、ファイルパスの拡張子を見て判断しようと思います…。
おおたか
会議室デビュー日: 2005/03/31
投稿数: 11
投稿日時: 2005-04-01 16:47
自己レスです。

acceptプロパティはXHTML Basicでサポートされておらず、そのためPDA、
携帯電話での利用ができないようです。
"ブラウザの依存"はそうした小型機器を言っているのだと思います。

とはいえ、現環境(XP sp1,IE6 sp2)で使用できない理由は不明なのですが。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-04-01 18:01
引用:
とはいえ、現環境(XP sp1,IE6 sp2)で使用できない理由は不明なのですが。

IE6がaccept属性に対応してないからでは?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-04-02 06:32
 MIME属性で指定、ってかいていますよねぇ。で、サンプルも、イメージの指定を"Image/*"ですね。例えば、"*.jpg,*.jpeg,*.gif"とかではなく。

 ということは、クライアントのMIME設定がどうなっているかということを、サーバ側で知る必要がありますよね。ということで、無理でしょう。できるとしても、アプリケーションの指定くらいまででしょう。"application/*"

 で、MIMEを、誰が、どうやって判断するんでしょうね。
 ということで、サポートしているブラウザの方が珍しい、と思います。
_________________
おおたか
会議室デビュー日: 2005/03/31
投稿数: 11
投稿日時: 2005-04-04 10:22
べるさん、Jittaさん、ご回答ありがとうございます。
ASPとしての前提をあまり考えていないことがわかりました。

当機能にこだわらず、実装を行うことにいたします。
1

スキルアップ/キャリアアップ(JOB@IT)