只是要验证post_max_filesize
设置为较高水平?因为根据php.net:
如果发布数据的大小大于post_max_size,则$ _POST和$ _FILES超全局变量为空。这可以通过各种方式进行跟踪,例如,将
$_GET
变量传递给处理数据的脚本,即<form action="edit.php?processed=1">
,然后检查$_GET['processed']
是否为组。
需要考虑的事情。
有关更多信息,请参见此链接并向下滚动至post_max_filesize
部分
更新
以我的经验,如果您获得WSOD,通常会关闭error_reporting
和display_errors
或达到memory_limit
。通常,在顶部的脚本中,我通常将memory_limit
设置为1024M来验证这不是问题,并打开error_reporting
和display_errors
...因此将其放在文件上传之前:
error_reporting(E_ALL); // or E_STRICT
ini_set("display_errors",1);
ini_set("memory_limit","1024M");
通常,它摆脱了WSOD并给您带来错误。
更新
您是否尝试过在所有功能之前取消@
错误抑制,以查看它们正在产生特定错误?另外,您的执行和输入超时时间是多少?并且可以验证发送了哪些标头? (确保它是Content-Type=text/html;
)
0
我正在运行一个脚本,该脚本使用
move_uploaded_file()
移动上载的文件。我已经完成了数千次,但是由于某种原因,它无法正常工作。我已确认以下内容:<form>
使用method="post"
和正确的enctype
777
memory_limit
,max_execution_time
等均设置为超高设置,以避免超时基本上,下面的脚本仅返回
Your image is too big.
。我还启用了显示所有错误的提示,但仍然没有收到错误。有任何想法吗?将1and1托管与php.ini hack结合使用:P
更新1
我想补充一点,脚本的响应恰好在60秒后发生。
更新2
我们可能与此有关。只需
print_r($_FILES)
,这就是数组的结果:因此,这使我相信该文件未正确上传到服务器或其他东西?我已经检查过,发布的表单是
<form action="" method="post" enctype="multipart/form-data">
。那么,据我所知,文件没有上传到服务器的临时区域吗?更新3
注意上述数组中的
[error] => 1
。显然, 这取决于文件大小大于upload_max_filesize
。但是,当我将其设置为128M
,在60秒后出现白屏死机。我上传的文件为2.5MB这是我的php.ini文件:
更新4
通过上面的详细信息,看来我正在获得WSOD,但是图像已被改写。那么,如何停止WSOD?我在任何地方都找不到任何错误。
更新5-找到了!
没给你们所有代码给我可耻。看起来与此行有关:
在下面的代码中:
因此,WSOD意味着它没有消息就死了。有任何想法吗?