【问题标题】:php $_FILES emptyphp $_FILES 为空
【发布时间】:2013-12-13 09:22:25
【问题描述】:

我有一个使用enctype=multipart/form-data 的文件上传表单,但我的$_FILES 数组始终为空。 max_upload_size 足够大(2MB,我正在测试 100kb 文件)。完全相同的代码在其他主机上运行,​​所以我认为我的 webhoster 的 php 设置有问题。有谁知道我可以检查什么?当我问他们时,他们总是告诉我这不能是他们的错-_-

编辑:

您要求提供代码,我没有发布它,因为它非常复杂(Shopware 插件),但我认为我可以提取重要部分:

HTML(智能):

<form method="post" action="{url action=saveRegister}" enctype="multipart/form-data">

PHP(在我的事件处理程序中):

file_put_contents('ul.log',serialize($_FILES));

结果(var_dumped 未序列化):

array(0) {}

完整的 HTML:http://pastebin.com/Wq1yBTux

【问题讨论】:

  • 您的代码confidential 可以在这里发布吗?
  • 检查您要上传到的文件夹的权限
  • 检查 phpinfo 输出
  • @PatsyIssa 移动尚未完成,文件应该在 tmp 文件夹中并且 $_FILES 数组将被填充,我们还没有处于文件无法移动到的阶段上传目录呢
  • 检查suhosin参数,它们可能非常棘手。

标签: php file-upload


【解决方案1】:

发现错误:框架的一些“安全功能”“清理”了 $_POST,所以move_uploaded_file 无法检查文件是否正确上传

【讨论】:

    【解决方案2】:

    安装Firebug(参见网络选项卡)或Livehttpheaders以查看您的文件是否实际发送到服务器以及浏览器是否正确发送了HTTP标头。

    它们可能因任何原因出错(不允许使用 Content-Type,不允许使用 POST 方法)

    它应该为您提供要查看的数据和要检查的配置参数。

    【讨论】:

    • 它在我的请求 ------WebKitFormBoundaryQyQAQArrBFT70bfD Content-Disposition: form-data; name="upload"; filename="technikdirekt1.png" Content-Type: image/png 中发送,我得到 HTTP 200。
    猜你喜欢
    • 2014-09-21
    • 1970-01-01
    • 2014-03-23
    • 2010-12-10
    • 1970-01-01
    • 2011-08-20
    • 2015-08-22
    • 2014-10-31
    • 1970-01-01
    相关资源
    最近更新 更多