php, apache kullanarak büyük dosyaları upload

4 Cevap php

I want to upload files of around 150 MB using PHP and Apache server. With my code i can upload upto 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

4 Cevap

Burada PHP dosya yükleme ile ilgili bazı iyi info

Upload files PHP info

Or you could also read up on it here using an Java applet that uploads the file in chunks. Search for Jupload

php/Apache Config You will need to change the value of both upload_max_filesize and post_max_size to the largest filesize you would like to allow. Then restart apache and everything should work.

Ben de max giriş saati ve betik çalıştırma zamanı kontrol ediyorum. Her ikisi de şu anda 300 saniye (5 dakika) için hazırsınız. Yani kullanıcı, 300 saniye içinde 150 mb (1200 mega-bit) yüklemek zorunda anlamına gelir. Yani son kullanıcı ayrılan zaman içinde bu dosyayı yüklemek için sağlam ve tutarlı 4Mbps bağlantı (1200/300 = 4) gerekir demektir.

Ben bu ayarlara benzer bir şey tavsiye ederim:

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

Sen AJAX ve PHP akışları kullanarak deneyebilirsiniz, bu şekilde bellek kullanımı 1MB altında dosya ne kadar büyük olursa Mater olacaktır.

You can read more about it here: http://www.webiny.com/blog/2012/05/07/webiny-file-upload-with-html5-and-ajax-using-php-streams/

Eğer, büyük dosyaları yüklemek bir php.ini dosyası oluşturun ve içine aşağıdaki kodu yazmak ve yüklenen dosyaların hedefe, yani, dosyaları karşıya klasöre koymak için paylaşılan bir sunucu kullanıyorsanız ve istiyorsanız.

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