我一直收到错误:注意:未定义的索引:在行 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" />
答案 0 :(得分:2)
您是否在表单元素上使用了enctype="multipart/form-data"
?
这似乎是my_field
未设置密钥$_FILES
的唯一原因。
修改:如果您的文件大于post_max_size
,您还会得到一个空的$_FILES
数组。
答案 1 :(得分:2)
更新: OP正在执行Ajax请求 - 显然无法使用文件上传。
旧回答:
我想我找到了它。
仔细看看这个标签:
<form name="upload" id="upload" enctype="multipart/form-data" method="post"
action="actions/upload.php" />
结束/>
关闭表单。之后的所有内容都不在该表单中 - 它位于浏览器可能生成的新标记中以处理损坏的标记。新表单不是enctype=multipart/form-data
。
答案 2 :(得分:0)
要使用ajax提交上传,您可以使用带有上传部分的IFRAME。
有点复杂但可行。您需要一些机制将它们绑定在一起,例如,如果您要提交有关图像的信息,请让步骤1返回存储该信息的数据库行的ID,以便IFRAME上载表单可以提交该ID,以便它知道在哪里存储图片。