1

我不断收到错误消息:注意:未定义索引:第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

enctype="multipart/form-data"在表单元素上使用了吗?

这似乎my_field是未设置密钥的唯一原因$_FILES

编辑:如果您的文件大于post_max_size,您还会得到一个空$_FILES数组。

另请参阅:Apache/PHP:$_FILES 数组神秘地为空

于 2011-01-03T14:36:30.243 回答
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 回答
0

为了使用 ajax 提交上传,您可以使用带有上传部分的 IFRAME。

  1. 发送ajax表单提交
  2. 在 IFRAME 中的上传表单上使用 javascript 触发器 submit()
  3. 让iframe中的返回页面在主页面触发javascript完整响应功能

有点复杂,但会工作。您需要一些机制将它们联系在一起,例如,如果您要提交有关图像的信息,请让第 1 步返回存储该信息的数据库行的 ID,以便 IFRAME 上传表单可以提交该 ID,以便它知道在哪里存储图片。

于 2011-01-03T14:59:10.503 回答