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" .
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
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
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
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
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; #设置临时目录 }
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
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$"; }
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
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!