1

エラーが発生し続けます: Notice : Undefined index: on line 35

35行目:

 $handle = new Upload($_FILES['my_field']);

これは私の入力フィールドです

 <input type="file" size="32" name="my_field" value="" />

このエラーがわかりません、ありがとう!!!

編集:

 <form name="upload" id="upload" enctype="multipart/form-data" method="post" action="actions/upload.php" />
 <p><input type="file" size="32" name="my_field" value="" /></p>
 <p class="button"><input type="hidden" name="action" value="image" />
 <br>
 <input style="margin-left:224px;" type="submit" name="submit" value="upload" />
4

3 に答える 3

2

更新: OP は Ajax リクエストを実行しています。これは明らかにファイルのアップロードでは機能しません。

古い答え:

見つけたと思います。

このタグをよく見てください。

 <form name="upload" id="upload" enctype="multipart/form-data" method="post"
 action="actions/upload.php" />

クロージング/> は​​フォームを閉じます。その後に来るものはすべて、そのフォーム内にはありません。おそらく、壊れたマークアップを処理するためにブラウザーが生成する新しいフォーム内にあります。その新しい形はそうではありませんenctype=multipart/form-data

于 2011-01-03T14:50:26.680 に答える
2

enctype="multipart/form-data"フォーム要素で使用しましたか?

my_fieldこれが、キーがオンに設定されていない唯一の理由のよう$_FILESです。

編集: ファイルが よりも大きい場合post_max_size、空の$_FILES配列も取得されます。

参照: Apache/PHP: $_FILES Array 不思議な空

于 2011-01-03T14:36:30.243 に答える
0

Ajax 送信でアップロードするには、IFRAME を使用してアップロード部分をそこに含めることができます。

  1. ajaxフォーム送信を送信
  2. IFRAME のアップロード フォームで JavaScript トリガー submit() を使用する
  3. iframe の戻りページで、メイン ページの JavaScript 完全応答関数をトリガーする

少し複雑ですが、うまくいきます。たとえば、画像に関する情報を送信している場合、手順 1 でその情報が保存されているデータベース行の ID を返して、IFRAME アップロード フォームがその ID を送信できるようにして、それらを結び付けるメカニズムが必要です。画像を保存します。

于 2011-01-03T14:59:10.503 に答える