ファイルアップロードでファイルが2回送信される理由は?

このQ&Aのポイント
  • ファイルアップロード時にファイルが2回送信される問題が発生しています。
  • ファイルアップロードにおいて、選択したファイルが2回送られてくる理由がわかりません。
  • ファイルアップロードの仕様上、ファイルが2回送信されるようになっています。
回答を見る
  • ベストアンサー

POSTによるファイル・アップロード、ファイルが2回送信される。

POSTによるファイル・アップロード、ファイルが2回送信される。 <form method="POST" action="file_up.cgi" enctype="multipart/form-data" target="_blank"><table width="650" border="0" cellspacing="3" cellpadding="3" bgcolor="#AAAAFF" align="center"> <tr align="center"><td colspan="2"><b>ファイル・アップロードのサンプル(実験中!)</b></td></tr> <tr><td align="right">ファイル名:</td><td align="left"><input type="file" name="NAME" style="background-color:aqua"></td></tr> <tr><td></td><td><input type="submit" value=" 送信 "><input type="reset" value="クリア"></td></tr></table></form></body></html> 参照ボタンでファイルを選択し、「送信」し、サーバー側でメッセージ・ボディーを見ると選択したファイルが2回送られてきています。 全く無駄な送信だと思うのですが、何か設定があるのでしょうか? それとも仕様でしょうか? 宜しくお願い致します。

  • HTML
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>選択したファイルが2回送られてきています なにをもって2回送られてきたと判断していますか? セキュリティ上ブラウザ側でファイルの送信にはかなり強い制限をかけているため 通常では2度ファイルが送られることはないと思いますが・・・

WiinWiin
質問者

補足

早速の回答有難う御座います。 2回という表現が適切ではありませんでした。 1回の送信で二つのバウンダリーで同じものが送られてきています。 サーバー側で保存したものを見ています。 短いテキストファイルを作成してアップロードのテストを行いました。 -----------------------------7da34b05a04a6 Content-Disposition: form-data; name="NAME"; filename="C:\Documents and Settings\***\My Documents\***\up_sampl.txt" Content-Type: text/plain アップロード・テスト -----------------------------7da34b05a04a6-- -----------------------------7da34b05a04a6 Content-Disposition: form-data; name="NAME"; filename="C:\Documents and Settings\***\My Documents\***\up_sampl.txt" Content-Type: text/plain アップロード・テスト -----------------------------7da34b05a04a6--

その他の回答 (1)

回答No.2

> No.1お礼 2回保存してるだけじゃないでしょうか。

WiinWiin
質問者

お礼

回答有難うございます。 ご指摘の通り保存で初歩的なミスをしておりました。 恥ずかしいです。

関連するQ&A

  • ファイルアップロードについて

    ファイルアップロードについて質問させて下さい。 ID、ファイルアップロードの機能の2つがあります。 ファイルを指定し、submitボタンを押下すると「b.php」に遷移します。 ファイルをアップロードした場合には遷移をせず ID、画像パスが入力されている場合のみ「b.php」に遷移したいのです。 入力チェックはjavascriptで行っていますが、その場合には「action=""」として javascript側で遷移するしか方法は無いのでしょうか? ---a.php---- <form enctype="multipart/form-data" action="b.php" method="post" name="a"> <input type="hidden" name="MAX_FILE_SIZE" value="50000000" /> <table> <tr> <th>ID</th> <td><input type="text" name="ID" value=""></td> </tr> <tr> <th>画像</th> <td><input type="file" name="img" value=""> <input type="submit" name="upload" value="upload"> </td> </tr> </table> <a href="#" onClick="javascript:check('a');"><img src="button.jpg"></a> </form> お手数ですが、ご教授よろしくお願い致します。

    • ベストアンサー
    • PHP
  • POSTでファイルアップロード

    fedora7、PHP5、Mysql5を使っています。 画像ファイルやコメント、タイトル等を<form method="POST" action="regchk.php">で、渡すreg.phpファイルと、それお受け取り画像ファイルサイズやコメント文字数等をチェックするregchk.phpファイルがあります。 reg.phpの<form >部分が、 <form method="POST" action="regchk.php" enctype="multipart/form-data"> <table > <tr> <th>写真のファイル</th><td><!-- MAX_FILE_SIZE must precede the file input field --> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> <input type="file" name="uploadfile" size="60"></td> </tr> <tr> <th>タイトル </th><td><input type="text" name="title" size="60" maxlength="50"></td> </tr> <tr> <th>コメント </th><td><textarea rows="7" cols="60" name="comment"></textarea></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="reg" value=" 登録 "> <input type="reset" value=" クリア "> </td> </tr> </table>  </form>です。 そして、regchk.php の$_POST['uploadfile'] で、画像ファイルがアップされているか、チェックしたいのです。以下のように。 $uploadfile = $_POST["uploadfile"]; echo $uploadfile."<br>"; ----→空白が表示される //エラーコード 検証用 echo $_FILES['uploadfile']['error']."<br>"; ---→ 0が表示される echo $_FILES['uploadfile']['tmp_name']."<br>"; --→ /usr/tmp/phpアルファベット echo $_FILES['uploadfile']['size']."<br>"; ----→9894 //入力データのチェック $errmsg = ""; if (strlen($uploadfile) == 0) { $errmsg .= "写真のファイルが指定されてません.<br />"; } ↑このif文でエラー文字列が、$errmsg に入る。 アパッチのerror_logを見ると、 Notice: Undefined index: uploadfile in /home/user1/public_html/regchk.php on line 5, と、出ており、5行目とは $uploadfile = $_POST["uploadfile"]; のことです。 自分は、やり方が根本的に間違っているのでしょうか? ご教授の方、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Yes/No型を使ってアップロード

    はじめまして。 下記にhtmlを書かせていただいてますが、このhtmlの『アップロード』のボタンを押すと 1. データベース『mdb』のYes/No型にチェックが入る 2. Yes/No型にチェックが入ったものはアップロードされる ようにすることはできるでしょうか?また、何か参考になるサイト様などがあれば 教えていただきたいのです。 おわかりになる方、よろしくお願いします。 下記のような↓フォームです。 ---------------------- <table> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='1'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル1</TD></FORM> <FORM ACTION='' METHOD='POST'> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='2'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル2</TD></FORM> <FORM ACTION='' METHOD='POST'> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='3'> <TR> <TR> </FORM> <TR> </table>

  • file upload でリセットが効かない

    WEBプログラミング初心者でよくわからないので、教えてください。 以下のHTMLで、一旦ファイルを参照しテキストにファイルパスが表示された後、リセットして空白にしても、アップロードをクリックすると、ファイルがアップロードされてしまいます。リセットできないのでしょうか? <form enctype="multipart/form-data" action="XXXXX.php" method="POST"> <table border="0" cellspacing="0"> <tbody> <tr> <td height="30"><input type="submit" value="ファイルをアップロード" name="btnUpload"></td> <td height="30"><input type="reset" value="リセット" name="btnReset"></td> </tr> <tr> <td height="30"><div align="center"><font size="3">在庫CSVファイル:</font></div></td> <td height="30"><input type="file" name="ZaikoUploadfile"></td> </tr> <tr> <td height="30"><div align="center"><font size="3">入庫CSVファイル:</font></div></td> <td height="30"><input type="file" name="NyukoUploadfile"></td> </tr> </tbody> </table> </form>

  • 画像ファイルをアップロードする方法

    掲示板を作りました。 画像ファイルやpdfファイルをアップロードできる 機能もつけたいと思います。 まずは保存方法なのですが、本で下のようにつく ってみました。 書き込み部分↓ use CGI qw(:standard); $file = param('file'); open OUT, "> $file"; while ( <$file> ) { print OUT $_; } フォーム部分↓ <FORM method="POST" enctype = "multipart/form-data" action="write.cgi"> <TR> <TD valign="top" width="116">■メッセージ(※)</TD> <TD colspan="3" width="371"><TEXTAREA rows="10" cols="50" wrap="soft" name="message">$message</TEXTAREA></TD></TR> <TR> <TD valign="top" align="right" colspan="2"><INPUT TYPE="file" NAME = "file" size ="50"></TD> </TR> </TABLE> <INPUT TYPE=HIDDEN NAME=time VALUE="$time"> <INPUT TYPE=HIDDEN NAME=mynum VALUE="$mynum"> <INPUT type="submit" value=" 送 る "> <INPUT type="reset" value="やり直す"> 上記のようにやったら内部エラーが出てしまいました。 サーバーはぷららの http://www.plala.or.jp/access/community/phps/ucgi_main.html を利用しています。 use CGI; がいけないのでしょうか?

    • ベストアンサー
    • Perl
  • VBAでアップロード

    ホームページ作成をしているのですが、ローカルにあるhtmlファイルをvbaでアップロードしたいのですが やり方がよくわかりません。 ソースは *************************************************************** <TABLE border=0 cellSpacing=0 cellPadding=0 width=650> <TBODY> <TR vAlign=top> <TD width="50%"> <TABLE style="FONT-SIZE: 12px" border=0 cellSpacing=1 cellPadding=3 width=323 bgColor=#ff6600> <FORM encType=multipart/form-data method=post action=/tok2_ftp/index.php> <INPUT name=act value=upload type=hidden> <INPUT name=MAX_FILE_SIZE value=300000 type=hidden> <INPUT name=dirname value=/ type=hidden> <TBODY> <TR align=center> <TD bgColor=#ffcc66>ファイルアップロード</TD></TR> <TR align=center> <TD class=line-height1 bgColor=#ffffff> <BR>アップロード可能なサイズは、1ファイル300kbまでです。<BR> <FONT color=#ff0000>※既に同じファイル名が存在する場合は上書きされます。</FONT> <BR><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file> <BR><BR><INPUT style="WIDTH: 150px" value=アップロード type=submit> <BR><BR></TD></TR></FORM></TBODY></TABLE></TD> *************************************************************** このような感じなのですが、 VBAで objIE.document.all("upfile[]")(0).Value = "test" 'エラーにならないけど値も入らない objIE.document.forms(0).all("upfile[]")(0).Value = "test" 'エラーにならないけど値も入らない 'objIE.document.forms(0)("upfile[]").Value = "test" 'エラー 'objIE.document.all("upfile[]").Value = "test" 'エラー objIE.document.forms(0).submit '押せる こんな事をやってみましたが、値を入れる事ができません。 解決方法を教えてください。

  • Servletへフォームから配列を送信できますか?

    PHPでは、下記のようにHTMLを記述することで、 フォーム内容を配列で送信及び取得できるのですが、 Servletで同じ事をするにはどうすれば良いでしょうか? <HTML><title>一括更新</title><BODY> <form action=./test.php method=post> <table> <tr><td> <input type=input name=a[0] value="1"> <input type=input name=b[0] value="2"> </td></tr> <tr><td> <input type=input name=a[1] value="1"> <input type=input name=b[1] value="2"> </td></tr> </table> <input type="submit" value="更新"> </form></BODY></HTML>

  • PHPでのメールフォームにつてい。下記のソースで送信・受信できますか?

    それから、何処に、送信先のアドレスを入れればいいでしょうか?? <html lang="ja"> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>mail</title> </head> <body> <br> <h3>Mail Form</h3> <!-- error --> <?PHPif ($error) { echo $error; }else{?><!-- form --> <form enctype="multipart/form-data" action="<?PHP echo EXE; ?>" method="post"> <table> <tr> <td>題名</td> <td><input type="text" name="subj" size="34" value="題名"></td> </tr> <tr> <td>アドレス</td> <td><input type="text" name="mail" size="34" value="あなたのアドレス"></td> </tr> <tr> <td>名前</td> <td><input type="text" name="name" size="34" value="ここに名前"</td> </tr> <tr> <td>内容</td> <td> <textarea name="???" cols="50" rows="10" wrap="soft"> ここに内容</textarea> </td> </tr> <tr> <td> File </td><td><input type="file" name="file" size="28"> <input type="submit" value="送信"> </td></tr> </table> <br> </body></html>

    • ベストアンサー
    • PHP
  • POSTを配列として送信し、キーと値を一覧で表示

    formに入力した値をPOSTを配列として送信し、 そのキーと値の一覧表を作ってみようとしたのですが、 思うように動いてくれません。何が間違っているのでしょうか。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>POSTを配列で送信して取得する</title> </head> <body> <?php if($_SERVER[REQUEST_METHOD]=="POST"){ if(isset($_POST["submit_no"])){ echo "<table border=\"1\"><tr><td>番号</td><td>内用</td><tr>"; while($key_no = key($_POST[no])+1){ //+1は番号を1から表示させるため $values = htmlspecialchars($_POST[no],ENT_QUOTES); echo <<< EOS <tr> <td>$key_no</td> <td>$values</td> </tr> EOS; } echo "</table>"; } } ?> <form action="post_hairetu.php" method="POST" enctype="multipart/form-data"> 1<input type="text" name="no[]" value="" /><br /> 2<input type="text" name="no[]" value="" /><br /> 3<input type="text" name="no[]" value="" /><br /> <input type="submit" name="submit_no" value="送信" /> </form> </body> </html>

    • ベストアンサー
    • PHP
  • JSPで個人データを入力、出力

    <html> <head><title>Costomer</head></title> <body bgcolor="white"> <div align="center"> <%@ include file="header.html"%> <form method="POST"action="customer.jsp"> <TABLE> <TR> <TD>Name</TD> <TD><input type="text" name="name"></TD> </TR><br> <TR> <TD>Mail Address</TD> <TD><input type="text" name="mail address"></TD> </TR><br> <TR> <TD>TEL No</TD> <TD><input type="text" name="tel no"></TD> </TR><br> </TABLE> <br> <input type="submit"value="Submit"> <input type="reset"value="Cancel"> </form> <jsp:include page="post-response.jsp" flush ="true" /> <%@ include file="copyright.html"%> </div> </body> </html> …………………………………………………………………………………… <html> <head><title>Post-Response</head></title> <body bgcolor="white"> <div align="center"> <TABLE BORDER="1"> <TR> <TD>Name</TD> <TD></TD> </TR><br> <TR> <TD>Mail Address</TD> <TD></TD> </TR><br> <TR> <TD>TEL No</TD> <TD></TD> </TR><br> </TABLE> <form method="GET"action="customer.jsp"> <input type="reset"value="Clear"> <br> </form> </div> </body> </html> …………………………………………………………………………………… 上のcustomer.jspにName,Mail Adress,Tel no,を入力し、打ち込んだものを下のpost-response.jspに出力したいのですがどのように出力したらよいのかわかりません!何度やってもエラーが出てしまいます。 教えてください!!お願いします! ・上のcustomer.jsp内の<%@ include file="header.html"%>と<%@ include file="copyright.html"%>無視してください!

専門家に質問してみよう