загружать большие файлы с помощью php, apache

Я хочу загрузить файлы размером около 150 МБ с помощью PHP и Apache-сервера. С моим кодом я могу загрузить до 5 МБ

<?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 минут). Это означало бы, что пользователь должен загрузить 150 мб (1200 мегабайт) за 300 секунд. Это означает, что конечному пользователю потребуется твердое и последовательное соединение 4 Мбит / с (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

Загрузить файлы

Или вы также можете прочитать его здесь, используя апплет Java, который загружает файл в куски. Поиск Jupload

php / Apache Config Вам нужно будет изменить значение upload_max_filesize и post_max_size на самый большой размер файла, который вы хотите разрешить. Затем перезапустите apache и все должно работать.

Если вы используете общий сервер и хотите загружать большие файлы, создайте файл php.ini и напишите в него следующий код и поместите его в папку, в которую вы загружаете файлы, то есть место назначения ваших загруженных файлов.

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

Вы можете попробовать использовать потоки AJAX и PHP, таким образом, использование памяти будет меньше 1 МБ, а не насколько ваш файл будет.

Вы можете прочитать об этом здесь: http://www.webiny.com/blog/2012/05/07/webiny-file-upload-with-html5-and-ajax-using-php-streams/

Загрузка загружаемых файлов с помощью 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 – 944 КБ, 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