Http文件上传-超过25mb的文件失败-PHP上传脚本


Http File upload - Files over 25mb fail - PHP uploading script

我已经为此头疼了20多个小时了,我真的很感激你的帮助!

我已经简化了这里的问题,所以代码非常简单。基本上,这个上传脚本可以完美地工作,直到我尝试上传一个大于25MB的文件,然后它失败了。PHP没有错误。

index.htm

<form enctype="multipart/form-data" action="upload.php" method="POST">
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

upload.php

<?php
$target_path = "uploaded/";
$target_path = $target_path.basename( $_FILES['uploadedfile']['name']); 
/***/highlight_string(print_r($_FILES, true)); //check array
if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ". basename($_FILES['uploadedfile']['name'])." has been uploaded";
} else {
    echo "There was an error uploading the file, please try again!";
}
?>

php.ini

[PHP]
post_max_size = 32M
upload_max_filesize = 32M

我的主机通知我,服务器上的上传限制是32MB。运行phpinfo()&ini中的变量正在更改。这不是超时问题(下载文件时运行了16mb的上传,比25MB的上传长了几分钟,但仍然有效)。

我一直在抛出$_Files数组作为一个字符串进行错误检查,当它失败时,我会得到以下结果:

Array
(
    [uploadedfile] => Array
        (
            [name] => 30.tif
            [type] => 
            [tmp_name] => 
            [error] => 7
            [size] => 0
        )
)
There was an error uploading the file, please try again!

有什么想法吗?在有相同问题的不同服务器上尝试过。

根据这一点,它无法将文件写入磁盘。你能检查一下配额/磁盘空间等吗。?

memory_limit也可能限制可上传文件的大小。

您的错误不在于大小,错误代码7是因为文件"无法保存在磁盘中"。

阅读更多错误:上传代码错误

尝试更改php.ini文件中的指令"upload_tmp_dir",并检查是否允许上传文件:"file_uploads=On"。

谢谢大家,我现在确信这是一个主机问题,而不是我的问题-尽管我已经在几个主机上尝试过了-我认为http post限制在25MB左右是很常见的。

我现在已经将我的上传器设置为最大文件大小为20MB,这应该会使它在大多数主机上非常安全。