我想使用PHP和Apache服务器上传大约150 MB的文件。 使用我的代码,我可以上传最多5MB
<?php
$path = $_COOKIE['Mypath'];
$target_path = "uploads/".$path ;
if(!isDir($target_path))
{
mkdir($target_path);
}
# Do uploading here
$target_path = "uploads/".$path ."/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
header("Location: somepage.html");
}
else
{
echo "File not uploaded";
}
?>
的php.ini
max_execution_time = 300 ; Maximum execution time of each script, in seconds
max_input_time = 300 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
upload_max_filesize = 200M
答案 0 :(得分:7)
我还会检查最大输入时间和脚本执行时间。它们目前都设置为300秒(5分钟)。这意味着用户必须在300秒内上传150 mb(1200兆位)。这意味着最终用户需要一个稳定且一致的4mbps连接(1200/300 = 4)才能在规定的时间内上传该文件。
我会推荐类似于这些设置的内容:
file_uploads = On
upload_tmp_dir = "/your/tmp/dir"
upload_max_filesize = 150M ; You may want to bump this to 151M if you have problems with 150 mb files
max_execution_time = 1200 ; 20 minutes, which is a 150 mb file at 1mbps
max_input_time = 1200
答案 1 :(得分:3)
这里有一些关于用PHP上传文件的好信息
或者您也可以使用以小块上传文件的Java小程序在此处阅读。 搜索Jupload
php / Apache配置 您需要将upload_max_filesize和post_max_size的值更改为您想要允许的最大文件大小。然后重启apache,一切都应该有效。
答案 2 :(得分:3)
如果您使用共享服务器并想要上传大文件,请创建一个php.ini文件并将以下代码写入其中并将其放在要上载文件的文件夹中,即您上传文件的目的地。
upload_max_filesize = 150M
post_max_size = 150M
memory_limit = 512M
max_execution_time = 1200
答案 3 :(得分:1)
您可以尝试使用AJAX和PHP流,这样内存使用量将低于1MB,无论您的文件有多大。
答案 4 :(得分:1)
我测试了很多解决方案,我的选择是Blueimp。这是我的评级列表:
我测试的其他解决方案