【问题标题】:i get error when i try to upload a file?当我尝试上传文件时出现错误?
【发布时间】:2011-06-02 21:15:05
【问题描述】:

我不断收到错误:通知:未定义索引:第 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" />

【问题讨论】:

  • 你能显示完整的 HTML 表单吗?
  • 是的,让我更新一下,谢谢!!
  • 看起来文件实际上没有上传,您应该先检查它是否上传成功 is_uploaded_file($_FILES['my_filed']['tmp_name']) 或 isset($_FILES['my_field' ]) 在对它们采取行动之前
  • 我们需要整个 HTML 表单和您正在使用的库。我假设您使用的是 Upload 类。
  • 你不能通过 ajax 发送文件 lol pekka beat me lol

标签: php html file upload undefined-index


【解决方案1】:

要使用 ajax 提交上传,您可以使用 IFRAME 并在其中包含上传部分。

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

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

【讨论】:

    【解决方案2】:

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

    这似乎是没有在 $_FILES 上设置密钥 my_field 的唯一原因。

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

    另见:Apache/PHP: $_FILES Array mysteriously empty

    【讨论】:

      【解决方案3】:

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

      旧答案:

      我想我找到了。

      仔细看这个标签:

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

      关闭/&gt; 关闭表单。 之后出现的所有内容都不在该表单内 - 它位于浏览器可能为处理损坏的标记而生成的新表单内。那个新表格不是enctype=multipart/form-data

      【讨论】:

      • 那是真的,它可以工作,所以我怎样才能通过 ajax 请求发送文件!!! +1 我见过人们通过 jquery 上传照片的例子
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 2019-04-17
      • 2021-03-30
      • 2018-08-31
      • 2020-03-19
      • 2018-03-12
      • 2022-11-21
      相关资源
      最近更新 更多