- - PR -
複数のExcelファイルをアップロードのエラー
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-18 20:21
たびたび、お世話になっております。
今回は複数のExcelファイルをアップロードの際に発生するエラー 「Content-Type ヘッダーをこの要求に対して multipart type に設定することはできません」で困っております。 Dim webCl As New System.Net.WebClient webCl.UploadFile("パス/A.xls","POST", "パス/A.xls") ’←かなり省略 というプログラミングで、ひとつのExcelファイルをアップロードする ことができました。 (エラーからすると、.NETのエラーではないような気がしますが) HTMLの<form>タグでMIMEタイプをいろいろ試しているのですが どうもうまくできません。 .NET特有な設定ってあるんでしょうか? |
|
投稿日時: 2004-08-18 21:02
私の理解が悪いのかもしれませんが、
質問の要点が私には把握できません。 WebClientとしてUploadするなら、n個のファイル分ループ処理すれば いいだけの話で<form>タグとかHTMLだとか、MIMEタイプは 関係ない話だと思いますが? それとも、サーバーサイドの処理の中で別のサーバに更にファイルを POSTしたいのでしょうか?で、あれば、まだ何となくやりたいことは 分かるのですが? <HTML> <FORM encrypt type="multipart/form-data"> </HTML> という世界の話で複数Uploadしたいなら、 WebClientを使用する話は多分、違うと思うのですが・・・。 私の理解が間違ってます? |
|
投稿日時: 2004-08-19 09:02
質問の仕方が悪くてすみません。
複数のファイルをアップロードする場合、 1個目のファイルをアップロードするには問題ないのですが、 2個目のファイルアップロードのところで以下のエラーが発生します。 「Content-Type ヘッダーをこの要求に対して multipart type に設定することはできません」 HTMLは <form id="Form1" runat="server" method="post" action=Test.aspx enctype="multipart/form-data" > enctypeの部分をいろいろ試したもののエラーになるのです。 ASP.NETでは複数のファイルのアップロードが無理なんて ことないですよね。。。うーん。 ※忘れていましたが、ASP.NET(VB.NET)です。 [ メッセージ編集済み 編集者: みのる 編集日時 2004-08-19 09:05 ] |
|
投稿日時: 2004-08-19 09:43
私自身は、ASP.NETのクライアント側(通常はWebブラウザですよね)で
WebClientを使用したことがありません。 (理由)職場内イントラとかではない限り、 .net Frameworkが入っている保証無し (理由)入っている前提でも、認証が必要なはず。 WebClientを使用する局面は、 ・WindowsFormアプリ ・Consoleアプリ ・又は、サーバサイドでUploadされてきたファイルを、 別のサーバに更に転送 と考えています。(違っていたら誰か指摘して!) みのるさんの .aspxの中に記述するスタイルで ファイルをアップロードする場合、 WebClientではなく、HTMLInputFileクラスを使うはずですが? (HTMLInputFileクラスを使って複数ファイルをアップロードされた ファイルをHTTPPostedFileクラスで処理した経験はあります。) でも、それにしても1個はできているという話が、謎ですが。 私が抜本的に間違っているかもしれないので、 第三者の査定(?)をお願いします。 |
|
投稿日時: 2004-08-19 15:03
platiniさん、いろいろありがとうございます。
PostedFile.SaveAsを使って ファイルのアップロードをしたことがあります。 今回はWEBフォームのボタンをクリックした際に ローカルの決まったフォルダ内のエクセルファイルを全てを サーバーの決まったフォルダ内にまとめてアップロードしたいのです。 PostedFile.SaveAsを使用すると、 ユーザがアップデートしたいファイルをひとつ選択しないと いけない仕様なので、HTMLInputFileクラスの使用しませんでした。 (違っていたらご指摘ください) ちなみに、 WebClientを使った ローカルの決まったフォルダ内のエクセルファイルを全てを サーバーの決まったフォルダ内にダウンロードはできました。 |
|
投稿日時: 2004-08-19 15:34
platiniさん、いろいろありがとうございます。
PostedFile.SaveAsを使って ファイルのアップロードをしたことがあります。 しかし今回は、WEBフォームのボタンをクリックした際に ローカルの決まったフォルダ内のエクセルファイルを全てを サーバーの決まったフォルダ内にまとめてアップロードしたいのです。 PostedFile.SaveAsを使用すると、 ユーザがアップデートしたいファイルをひとつ選択しないと いけない仕様なので、HTMLInputFileクラスの使用しませんでした。 (違っていたらご指摘ください) ちなみに、 WebClientを使った ローカルの決まったフォルダ内のエクセルファイルを全てを サーバーの決まったフォルダ内にダウンロードはできました。 というか、無理なこと使用としてるような気がしてきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=921512 [ メッセージ編集済み 編集者: みのる 編集日時 2004-08-19 15:48 ] |
|
投稿日時: 2004-08-19 15:56
結論的には件の処理は不可能です。
(イントラゾーンで、セキュリティ設定を甘くしても、 ブラウザを使う限り、無理だったと思います。) ⇒違っていたら誰か指摘してください。 1個ファイルをユーザーがダイアログで指定したとき、 そのファイルパスの値まではJavaScriptで取得可能です。 InputFileをいくら増やしても、ダイアログを表示するまでは いくが、同じフォルダ内のファイルを選択する操作は、 ユーザーのマウスインタラクティブしかありません。 ローカルファイルシステムには、ブラウザ側からは、 プログラム(スクリプト)では、アクセスできないように なっています。 もし、これがアクセス可能だとしたら、 どんなことが起きてしまうかは・・・ 想像付きますよね。 ですから、フォルダ内ファイル一括送信を行いたいのであれば、 Consoleアプリとか、WindowsFormにするか、事前にユーザーに 圧縮してもらって、それを選んでもらうとか そういう方法しかありません。 あるいは、イントラゾーンでセキュリティ上許可可能で、 IE限定なら、OCX(ActiveX)にするとか、 セキュリティを甘くしたノータッチデプロイメント(これも デフォルトではローカルファイルシステムへのプログラムからの能動的 アクセスは禁止されています。)にするとか、 ごく普通の設定+Webブラウザの世界で泳ぐ限りは、無理だと思います。 |
|
投稿日時: 2004-08-19 16:30
やはり、そうですか。。。
>ローカルファイルシステムには、ブラウザ側からは、 >プログラム(スクリプト)では、アクセスできないように >なっています。 この点については非常に危険かもしれませんが、 サーバーのフォルダ・ローカルのフォルダを共有にしてあります。 この場合、FILE.MOVEでいいような気がしてきました。 いろいろと、ご親切にありがとうございます。 |