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

时间:2011-06-22 15:05:57

标签: php html http post upload

我已经对这个打了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。 Ran phpinfo()&amp; 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!

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

更多错误:Upload code errors

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

答案 3 :(得分:0)

谢谢大家,我现在确定这是一个主机问题,而不是我的问题 - 即使我已经在几个主机上试过了 - 我认为它很常见http帖子限制在25MB左右。

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