尝试上传文件时出现错误?

i get error when i try to upload a file?

提问人:getaway 提问时间:1/3/2011 最后编辑:ajrealgetaway 更新时间:1/3/2011 访问量:309

问:

我不断收到错误:注意:未定义的索引:在第 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" />
php html 文件 上传 undefined-index

评论

0赞 Pekka 1/3/2011
你能显示完整的HTML表单吗?
0赞 getaway 1/3/2011
是的,让我更新它,谢谢!!
0赞 Patrick Evans 1/3/2011
看起来文件实际上并没有上传,您应该先检查它是否成功上传 is_uploaded_file($_FILES['my_filed']['tmp_name']) 或 isset($_FILES['my_field']) 在对它们采取行动之前
0赞 Evan Mulawski 1/3/2011
我们需要整个 HTML 表单和您正在使用的库。我假设您正在使用一个,因为 Upload 类。
1赞 Patrick Evans 1/3/2011
你不能通过 ajax 发送文件,哈哈,pekka 打败我,哈哈

答:

2赞 Thai 1/3/2011 #1

您是否在表单元素上使用过?enctype="multipart/form-data"

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

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

Смотритетакже: Apache/PHP:$_FILES 数组神秘地为空

2赞 Pekka 1/3/2011 #2

更新:OP 正在执行 Ajax 请求 - 这显然不适用于文件上传。

旧答案:

我想我找到了。

仔细看这个标签:

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

结束关闭将关闭窗体。之后出现的所有内容都不在那个表单中 - 它位于浏览器可能生成的一个新表单中,以处理损坏的标记。这种新形式不是./>enctype=multipart/form-data

评论

0赞 getaway 1/3/2011
这是真的,那么我怎样才能通过AJAX请求发送文件呢!!+1 从我这里看过人们通过jQuery上传照片的例子
0赞 Patrick Evans 1/3/2011 #3

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

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

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