使用php,apache上传大文件

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)


Har*_*d M 5

如果使用共享服务器并要上传大文件,请创建一个php.ini文件,并将以下代码写入其中,然后将其放在要上传文件的文件夹中,即上传文件的目标位置。

 upload_max_filesize = 150M
 post_max_size = 150M
 memory_limit = 512M
 max_execution_time = 1200 
Run Code Online (Sandbox Code Playgroud)


Art*_*gas 3

这里有一些关于在 PHP 中上传文件的好信息

上传文件 PHP 信息

或者,您也可以在此处使用 Java 小程序来阅读它,该小程序可以分块上传文件。搜索Jupload

php/Apache 配置 您需要将 upload_max_filesize 和 post_max_size 的值更改为您希望允许的最大文件大小。然后重新启动 apache,一切都会正常。