• 締切済み

IIS6でmultipart/formdataがPOSTできない

IIS6にてFORMのENCTYPEをmultipart/formdataにしてデータをPOSTすると、アクセス拒否となってしまうのですが、どうすればできますか? ActivePerl 5.8

  • Perl
  • 回答数4
  • ありがとう数2

みんなの回答

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.4

お役に立たなくてすみません。 当方では全くこうした問題がなく、ファイルのアップロードに失敗するということなので回線の問題かもしれないと思っていたところです。フリーソフトでできるのであればバグがあるのかもしれません。

haporun
質問者

お礼

難題をふっかけておいて結局逃げてしまってすみません。 いろいろとありがとうございました。

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.3

 最初の質問にそのようなことが書かれているのを見ましたが、typeはmultipart/form-data と-が必要なのではないんですか。

haporun
質問者

補足

すみません、ここへの記入ミスで、HTMLではmultipart/form-dataとなっていました。 原因がわからないので、フリーソフトですませようと思います。 ありがとうございました。

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

よくあるケースとして、 (1)匿名ユーザIUSER_(コンピュータ名)のログイン時のデフォルトのディレクトリが設定されていないため、相対パスで書かれているスクリプトに到達できない。Unix系ではデフォルトルートが設定されているがWindowsではそのようにならない。同様に関連ファイルへも絶対パスを通さないとアクセスできない。 (2)受け取り側のCGIのスクリプトへのアクセス権の設定が匿名ユーザにはアクセスできない状態。 (3)サイトのアプリケーションの設定において構成ボタンで表示される拡張子とアプリケーションの関連設定に.cgiを追加していない。 です。ご確認ください。

haporun
質問者

補足

ENCTYPE=multipart/formdata を指定しない場合は、ファイルが送れないことを除いて正常に動作します。

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

IISのログにはどのように書かれていますか。

haporun
質問者

補足

C:\WINDOWS\system32\LogFilesのログには何も書かれていませんし、イベントビューアにもそれらしきものは何もないのです。 スクリプトはLinuxのApacheで使っていたもので、そちらでは正常に動いていました。 また、フリーソフトのanhttpdを使ってみたところ、正常には動作しませんでしたが、POSTは成功していました。

関連するQ&A

  • iis+cgiでmultipart/form-data送信がうまくいかない

    これまでLinux+Perl/CGIで構築していたWEBサーバをIIS+Perl/CGIに移す必要が生じ、新規にIISによるWEBサーバを構築しました。 一気にコンテンツを移動してもハマるだけだと考え、まずは簡単なコードを記述しCGIが動作するかどうかテストしています。 POSTによるinput type=textのデータ表示まではうまく行きましたが、ファイルアップロードのところで詰まりました。 IIS(Windows)によるWEBサーバの構築は初めてで、何が問題なのかサッパリわかりません。 どなたか問題点あるいはどこをチェックすれば良いかご指摘いただけませんでしょうか。 ●やった事 PerlにてPOSTを利用しmultipart/form-dataにてファイルをアップロードするシンプルなコードを書き、第一段階としてMIMEエンコードされたものをブラウザ上に表示するしようとしてみた。 コードは最下方の通り。 ●症状 送信を実行してもアップロード中のまま(ウィンドウマークが動き続けている)で、IISに設定してある10分程のタイムアウト時間を過ぎて終了してしまう。 TXT、XLS、DOCなどファイル種を変えて試しても全く同じ症状。 ●環境:Windows2000ServerSP4 IIS5.0 Perl5.8.8 *******アップロード画面****** <HTML> <HEAD> <TITILE>ファイルのアップロード</TITLE> </HEAD> <BODY> <FORM ACTION="/cgi-bin/upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST"> ファイル: <INPUT TYPE="file" NAME="File" SIZE="32"><BR> <INPUT TYPE="submit" VALUE="送信"> </FORM> </BODY> </HTML> **********ここまで*********** *******CGI******************* #!/perl/bin/perl read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>test</TITLE>\n"; print "</HEAD>\n"; print "<BODY BGCOLOR=\"#ffffff\">\n"; print "$buffer"; print "</BODY>\n"; print "</HTML>\n"; exit; ********ここまで***********************

    • ベストアンサー
    • CGI
  • JSP「multipart/form-data」

    enctype= "multipart/form-data"をでsubmitしたテキスト・チェックボックス・ラジオボタンデータは、 request.getParameterでの取得はできません。 "multipart/form-data"を指定してかつテキストデータ等を取得する方法はありませんか。 ソースの追加のみで行いたいです。

    • ベストアンサー
    • Java
  • enctype="multipart/form-data"

    アップローダーのHTMLで、FORMのタグに enctype="multipart/form-data"が必要なのはバイナリファイルをアップロードする時だけですか?

    • ベストアンサー
    • HTML
  • POSTされない

    xamppにてローカル環境でやっているのですがなぜか type="file"だけPOSTされません。 ie6とfairefox3で試しましたが取得できませんでした。 調べてみたのですが同様の事例が見つからずわからかったのですが これは何が原因なのでしょうか? ---html--- <form action="index.php" method="post" enctype="multipart/form-data"> <input type="text" name="name" /> <input type="file" name="img" /> <input type="submit" name="send" value="送信する" /> </form> ---php--- if (isset($_POST['send'])) { echo '<pre>'; print_r($_POST); echo '</pre>'; } print_r($_FILES);を試すと正常に値が表示されます。全く意味不明 なのですが何かセキュリティ上の問題などが原因なのでしょうか?

    • 締切済み
    • PHP
  • multipart/form-dataを使用した場合変数が受け取れない

    フォームにmultipart/form-dataを使用した場合いつも通り$_POSTが受け取れないのですが、試しにエンコーディングタイプを無しにしたら普通に受けとれます。 multipart/form-dataを使用した場合$_POSTの受け取り方も変わってしまうのでしょうか? 勝手な予想ではいつも通り+$_FILESが使えるようになるだけだと思っているのですが…。 ページ自体のエンコードはeuc-jpです。

    • 締切済み
    • PHP
  • Ajax.Updaterでmultipart/form-dataの送信方法

    <html> <body> <form action="/hoge.cgi" method="POST" enctype="multipart/form-data" target="if"> arg1:<input type="textbox" name="arg1"/><br/> <input type="file" name="data" size="60"> <input type="submit" value="Upload" onclick="post()"/> </form> <iframe name="if" id="if" frameborder="0" border="0" width="730" height="500" scrolling="yes"></iframe> </body> </html> 上記と同じような事をiframeを使わないで実現したいです。 以下の様に書いてみました。 <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> function post(){ var url ='/hoge.cgi'; new Ajax.Updater( $('result'), url, { method: 'POST', parameters: Form.serialize($("form1")), contentType: 'multipart/form-data' } ); } </script> </head> <body> <form id="form1" enctype="multipart/form-data"> arg1:<input type="textbox" name="arg1"/><br/> <input type="file" name="data" size="60"> <input type="button" value="Upload" onclick="post()"/> </form> <div id="result"></div> </body> しかし、/hoge.cgiには前者と同じようなhttpリクエストがわたりません。前者と同じような(下記(1)参照)httpリクエストを発行するにはどうしたらよいでしょうか? (1)前者:httpリクエストの例 POST /hoge.cgi HTTP/1.1 CONTENT_LENGTH: 285 CONTENT_TYPE: multipart/form-data; boundary=---------------------------7d8ea171f055c ~中略~ -----------------------------7d8ea171f055c Content-Disposition: form-data; name="arg1" -----------------------------7d8ea171f055c Content-Disposition: form-data; name="data"; filename="" Content-Type: application/octet-stream -----------------------------7d8ea171f055c-- (2)後者:httpリクエストの例 POST /hoge.cgi HTTP/1.1 CONTENT_LENGTH: 11 CONTENT_TYPE: multipart/form-data; charset=UTF-8 ~中略~ arg1=&data=

  • Dojo1.2でAjaxのpostをしたい

    こんにちは。 Dojo1.2でAjaxのPostをしているのですが、値が受けわたっていきません。 ファイルアップロードをしているのですが、Fileを認識しません。 確認はIE6で行ってます。 ・呼び出し元 var param = new Object(); param['file'] = document.edit._file.value; ajaxPost("test.action", param); ... <form name="edit" enctype="multipart/form-data" method="post"> <input type="file" name="file" id="_file" size="50" maxlength="255" value=""/> </form> ・Ajax呼び出し function ajaxPost( rurl, parameters) {  dojo.xhrPost ({   url: rurl, //form: 'post-form',   parameters: parameters,   load: function (data) {   },   error: function (error) {    alert(error);   }  }); } このようにしていますが、どこが悪いのでしょうか?できればform=editで指定できれば良いのですが・・、エラーとなってしまう為、parameterとして格納したつもりです。 Action内には到達しているのですが、Fileを認識できていない状態です。(フレームワークはwebwork2を使ってますが、省略しました) お分かりになりましたら、よろしくお願いします。

  • multipart/form-data と $_FILE[ ]

    いつもお世話になってます。 multipart/form-dataにて、ファイルを受け取るとき、PHPでは、$_FILE変数に name="xxxx1"の名前が、$_FILE["xxxx1"]で取ることができます。 そこで、multipart/form-dataの filename="xxxxx.csv"という値は、 $_FILE["xxxx1"]["name"]に入ってくるのか、 それとも、 $_FILE["xxxx1"]["temp_name"]に入ってくるのかが、わかりません。 いろいろググッては見たのですが・・・。 どなたか、わかる方いらっしゃいますか?

    • ベストアンサー
    • PHP
  • IISでPOSTリクエストのエラー

    IISでPOSTリクエストを実行すると、HTTP エラー 405.0 - Method Not Allowed 無効なメソッド (HTTP 動詞) が使用されているため、検索しているページを表示できません。 が表示されててしまいます。 IISのハンドラマッピングで  要求パス:*.html  モジュール:ServerSideIncludeModule  ハンドルする動詞:次の動詞のうちひとつ(GET,POST)  アクセス:スクリプト に設定してます。 他に設定があるのか教えてください

  • onclickで複数のボタンで対応したCGIにデータを送りたいのですが。

    下記のような感じで、 1.画像追加ボタンを押すと別ページ(b.cgi)に飛んで登録が終わったらまたこちらに戻ってきて、登録が押されるとそのまま登録処理(a.cgi)になる。 2.画像追加がされていなくても登録が押されるとそのまま登録処理をする。 (1.2.ともform内の情報はhiddenですべて送ります。) こんな動きをさせたいのですが、参考サイトなどをみてもこういう動作をしているところがなくて丸3日悩んでいます。 onclick=submit の記述とJavascriptの書き方が問題だとは思うのですが煮詰まってしまいました。 皆様には初歩的な質問かもしれませんがどうぞよろしくお願いします。 <form method="post" enctype="multipart/form-data"> <input type="text" name="Title" value="" size="140"> <input type="text" name="Body1" value="" size="140" style="ime-mode: active;"> <input type="button" value="画像追加" onclick="submit(document.gazouform)"> <input type="button" value="登録" onclick="submit(document.tourokuform)"> <form action="a.cgi" method="post" enctype="multipart/form-data" id="tourokuform"> </form> <form action="b.cgi" method="post" enctype="multipart/form-data" id="gazouform"> </form>

専門家に質問してみよう