使用php,apache上传大文件

我想用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 

我还会检查最大输入时间和脚本执行时间。 他们目前都设置为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 

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

上传文件PHP信息

或者,您也可以在这里使用一个Java小程序在块中上传文件。 搜索Jupload

php / Apache Config您需要将upload_max_filesize和post_max_size的值更改为您希望允许的最大文件大小。 然后重新启动Apache,一切都应该工作。

你可能会尝试使用AJAX和PHP流,这样内存使用将会在1MB以下,不管你的文件有多大。

你可以阅读更多关于它在这里: http : //www.webiny.com/blog/2012/05/07/webiny-file-upload-with-html5-and-ajax-using-php-streams/

如果您正在使用共享服务器并想上传大文件,请创建一个php.ini文件,并将以下代码写入其中,并将其放入您要上传文件的文件夹(即上传文件的目的地)。

  upload_max_filesize = 150M post_max_size = 150M memory_limit = 512M max_execution_time = 1200 

使用ajax分块文件上传

我测试了很多解决方案,我的选择是Blueimp。 这是我的评级列表:

  1. Blueimp – 111KB, https://github.com/blueimp/jQuery-File-Upload
  2. Plupload – 359KB,为TinyMCE开发,支持HTML5到Flash,Gears,Silverlight和iFrame, http ://www.plupload.com/
  3. Fineuploader – 944KB, http ://fineuploader.com/

其他解决方案由我测试

  1. Uploadify – http://www.uploadify.com/
  2. 可恢复 – https://github.com/23/resumable.js
  3. Dropzonejs – http://www.dropzonejs.com/
  4. MooUpload
  5. Fancyupload
  6. Hayageek http://hayageek.com/docs/jquery-upload-file.php