Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的文件上载未返回错误代码_Php_File_Error Handling_Upload - Fatal编程技术网

PHP中的文件上载未返回错误代码

PHP中的文件上载未返回错误代码,php,file,error-handling,upload,Php,File,Error Handling,Upload,我在尝试使用PHP上传非常大的文件时遇到了一个问题。我知道以前有人提出过这个问题,我读过很多回复,但我还没有找到一个明确的答案 我使用的基本代码发布在这里:我已经成功地使用它让客户端上传图像文件、JPEG、GIF、png等。问题出现在允许用户上传不可显示的文件,如.psd文件,这些文件可能非常大 在php.ini中,本地和远程服务器上的upload_max_filesize和post_max_size都设置为128MB。代码中的隐藏字段MAX_FILE_SIZE在开发过程中已设置为各种值。问题是

我在尝试使用PHP上传非常大的文件时遇到了一个问题。我知道以前有人提出过这个问题,我读过很多回复,但我还没有找到一个明确的答案

我使用的基本代码发布在这里:我已经成功地使用它让客户端上传图像文件、JPEG、GIF、png等。问题出现在允许用户上传不可显示的文件,如.psd文件,这些文件可能非常大

在php.ini中,本地和远程服务器上的
upload_max_filesize
post_max_size
都设置为128MB。代码中的隐藏字段MAX_FILE_SIZE在开发过程中已设置为各种值。问题是:如果用户选择的文件大于
MAX\u file\u SIZE
但小于128MB,
$\u FILES['uploadfile']['error']
将返回一个错误代码2,正如PHP文档所说的那样。如果文件大小超过128MB,则上载处理将完全失败,并产生奇怪的结果

“奇怪”的结果包括不相关的错误消息,如“Undefined index:uploadbtn”这是提交按钮的索引,您必须单击以获取错误消息(!)这在Firefox 26和Chrome中发生。较大的文件可能会使Firefox完全崩溃,然后会显示bug report对话框

我不想上传大于128MB的文件,我只想处理用户以某种合理的方式选择非常大的文件的情况。有人知道怎么做吗

生产代码比上面的示例复杂得多,但我很乐意根据要求提供它


为什么不将最大文件大小设置为128 MB,并使用AJAX使用$\u FILES['filename']['SIZE']验证该字段,将其与您设置的变量$MAX\u FILE\u SIZE=进行比较,如果大于该值,则返回一个错误处理代码根本不运行,当所选文件大于128MB时,调试代码无法从$\u FILES数组中检索任何值,我怀疑它可能根本就没有创建,但我肯定会跟进。谢谢