Apakah yang perlu saya lakukan jika php hanya boleh memuat naik fail dalam tempoh 1k?

藏色散人
Lepaskan: 2023-03-13 20:02:02
asal
2088 orang telah melayarinya

Penyelesaian kepada masalah yang PHP hanya boleh memuat naik fail dalam masa 1k: 1. Cari dan buka fail konfigurasi php.ini 2. Ubah suai nilai "client_max_body_size", "upload_max_filesize" dan "post_max_size" .

Apakah yang perlu saya lakukan jika php hanya boleh memuat naik fail dalam tempoh 1k?

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

php hanya boleh memuat naik fail dalam masa 1k apa yang perlu dilakukan?

Penyelesaian kepada masalah had muat naik fail PHP:

Muat naik fail besar PHP memerlukan banyak sumber, jadi saiz muat naik perlu dihadkan ialah tiga Parameter yang berkaitan:

client_max_body_size
upload_max_filesize
post_max_size
Salin selepas log masuk

Tiga mesej ralat yang sepadan dengan di atas:

Warning: POST Content-Length of 9663102 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
$_FILES['file']['error']==1
nginx错误:413 Request Entiry Too Large
Salin selepas log masuk

client_max_body_size digunakan untuk menetapkan had atas klien Request body (request body) menjadi dimuat naik Fail berada dalam kandungan, jadi parameter ini secara tidak langsung boleh dianggap sebagai had pada saiz muat naik fail.

Pelayan nginx menentukan saiz badan melalui Panjang Kandungan pengepala permintaan. Melebihi had atas yang ditetapkan akan mengembalikan kod ralat 413 Minta Entiti Terlalu Besar Menetapkan parameter ini kepada 0 boleh membatalkan had panjang.

Syntax:    client_max_body_size size;
Default:   
client_max_body_size 1m;
Context:    http, server, location
Salin selepas log masuk

client_max_body_size boleh ditetapkan dalam http, pelayan, blok lokasi, jadi kami boleh meningkatkan saiz pakej yang dimuat naik untuk nama domain atau alamat permintaan.

ralat php:

Warning: POST Content-Length of 9663102 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
Salin selepas log masuk

Pada masa ini, saiz fail yang dimuat naik adalah lebih besar daripada post_max_size.

php tidak mempunyai amaran tetapi tidak boleh mendapatkan fail yang dimuat naik

Pada masa ini $_FILES['file']['error']==1, sebab ralat adalah kerana saiz daripada fail yang dimuat naik adalah kurang daripada post_max_size tetapi Lebih besar daripada upload_max_filesize.

Peluasan titik pengetahuan:

Penyelesaian kepada masalah had saiz muat naik fail PHP dan Nginx

Bagi sesetengah tapak web php nginx, saiz fail muat naik akan dihadkan dalam banyak aspek , satu ialah pengehadan nginx itu sendiri, yang mengehadkan saiz fail yang dimuat naik oleh klien, dan satu lagi ialah tetapan lalai di berbilang tempat dalam fail php.ini.

Jadi untuk menyelesaikan masalah had saiz fail muat naik, banyak pengubahsuaian mesti dilakukan. Beberapa tempat disenaraikan di bawah.

1. Ubah suai fail /usr/local/nginx/conf/nginx.conf, cari client_max_body_size dan tetapkan nilai berikut kepada nilai yang anda ingin tetapkan. Contohnya:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
     # 
     location ~ \.php$ { 
       root      /home/www/htdocs; 
       fastcgi_pass  127.0.0.1:9000; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME /home/www/htdocs$fastcgi_script_name; 
       include    fastcgi_params; 
   
       client_max_body_size 35m;    #客户端上传文件大小设为35M 
       client_body_temp_path /home/www/nginx_temp;    #设置临时目录 
     }
Salin selepas log masuk

Lampiran: Nginx mempunyai komponen Muat Naik:

Kadar muat naik, muat naik Saiz badan, iaitu fail mungkin lebih besar semasa memuat naik?

client_max_body_size 1024M
upload_limit_rate 158k
Salin selepas log masuk

Seperti berikut:

location /upload {
      upload_pass   /up.php;
      upload_cleanup 400 404 499 500-505;
      #upload_store  /data/app/test.local/upload_tmp;
      upload_store  /tmp;
      upload_store_access user:r;
      client_max_body_size 1024M;
      upload_limit_rate 158k;
      upload_set_form_field "${upload_field_name}_name" $upload_file_name;
      upload_set_form_field "${upload_field_name}_content_type" $upload_content_type;
      upload_set_form_field "${upload_field_name}_path" $upload_tmp_path;
      upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;
      upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;
      upload_pass_form_field "^.*$";
      #upload_pass_form_field "^pid$|^tags$|^categoryid$|^title$|^userid$|^user_id$|^is_original$|^upload_file_name$|^upload_file_content_type$|^upload_file_path$|^upload_file_md5$|^upload_file_size$";
    }
Salin selepas log masuk

2. Ubah suai php.ini

upload_max_filesize = 8M  
post_max_size = 10M  
memory_limit = 20M 
max_execution_time=300 
file_uploads = On #默认允许HTTP文件上传,此选项不能设置为OFF。
upload_tmp_dir =/tmp/www
Salin selepas log masuk

Apabila memuat naik fail besar, anda akan merasakan kelajuan muat naik adalah perlahan apabila ia melebihi tahap tertentu masa, skrip akan dilaporkan Ralat melaksanakan lebih daripada 30 saat disebabkan oleh pilihan konfigurasi max_execution_time dalam fail konfigurasi php.ini Ia menunjukkan masa pelaksanaan maksimum yang dibenarkan (saat) bagi setiap skrip, dan 0 menunjukkan tiada had . Anda boleh melaraskan nilai max_execution_time dengan sewajarnya.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika php hanya boleh memuat naik fail dalam tempoh 1k?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan