Ank*_*Ank 11 php apache file-upload
我想使用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";
}
?>
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 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
Run Code Online (Sandbox Code Playgroud)
如果使用共享服务器并要上传大文件,请创建一个php.ini文件,并将以下代码写入其中,然后将其放在要上传文件的文件夹中,即上传文件的目标位置。
upload_max_filesize = 150M
post_max_size = 150M
memory_limit = 512M
max_execution_time = 1200
Run Code Online (Sandbox Code Playgroud)
这里有一些关于在 PHP 中上传文件的好信息
或者,您也可以在此处使用 Java 小程序来阅读它,该小程序可以分块上传文件。搜索Jupload
php/Apache 配置 您需要将 upload_max_filesize 和 post_max_size 的值更改为您希望允许的最大文件大小。然后重新启动 apache,一切都会正常。