Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika php tidak boleh memuat naik imej besar?

Apakah yang perlu saya lakukan jika php tidak boleh memuat naik imej besar?

藏色散人
藏色散人asal
2022-01-20 09:34:332146semak imbas

Penyelesaian kepada masalah yang php tidak boleh memuat naik imej besar: 1. Buka php.ini 2. Cari post_max_size dan tetapkan kepada nilai yang anda perlukan 3. Sahkan "file_uploads = on"; direktori yang sah; 5. Tetapkan saiz maksimum fail yang dibenarkan untuk dimuat naik.

Apakah yang perlu saya lakukan jika php tidak boleh memuat naik imej besar?

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

Apakah yang perlu saya lakukan jika php tidak boleh memuat naik gambar besar?

Penyelesaian sempurna untuk php tidak dapat memuat naik fail besar

Penyelesaian yang sempurna untuk php.ini tidak dapat memuat naik fail besar

Buka php.ini ( tidak perlu membuka kaedah Setelah mengatakan bahawa, terdapat banyak Baidu)

2 Cari ukuran_pos_maks

Nilai maksimum untuk penyerahan borang ini tidak mengehadkan saiz satu memuat naik fail, tetapi mengehadkan data yang diserahkan bagi keseluruhan borang

Lalai ialah 8m, tetapkan kepada nilai yang anda perlukan untuk menetapkan parameter ini lebih besar daripada upload_max_filesize

3. Cari muat naik fail

Sama ada dibenarkan untuk memuat naik fail melalui suis http, sahkan file_uploads = on

4 Cari upload_tmp_dir

dan muat naik fail ke tempat fail sementara. disimpan pada pelayan Jika tidak dinyatakan, folder sementara lalai sistem

Jika ralat sistem menggesa "xxx direktori sementara xxx", anda perlu menetapkan direktori yang sah untuk direktori ini ralat dilaporkan, abaikan

5 Cari upload_max_filesize

Benarkan saiz fail Muat naik Nilai maksimum, lalai ialah 2m, tetapkan kepada nilai yang anda perlukan nilai post_max_size parameter ini, kerana ia dikawal oleh nilai post_max_size (walaupun jika upload_max_filesize ditetapkan kepada 1g, dan post_max_size hanya ditetapkan kepada 2m, fail yang lebih besar daripada 2m masih akan dimuat naik. Tidak ke atas, kerana ia dikawal oleh post_max_size nilai)

6 Jika anda ingin memuat naik fail yang lebih besar daripada 8m, anda juga perlu menetapkan parameter berikut:

Cari max_execution_time = 600 setiap Nilai masa maksimum (saat) untuk halaman php untuk dijalankan, lalai ialah 30 saat

masa_masukan_maks = 600; masa maksimum yang diperlukan untuk setiap halaman php untuk menerima data, lalai ialah 60 saat

memory_limit = 8m; memori maksimum yang diperlukan untuk halaman php, lalai ialah 8m

Penyelesaian yang sesuai untuk memuat naik fail besar menggunakan nginx

1.client_body_buffer_size Cuba tetapkannya sebesar mungkin. Ini berdasarkan kelajuan pertimbangan. Jika ia adalah kerana tetapan Jika ia terlalu kecil, fail yang dimuat naik akan sentiasa perlu ditulis ke cakera, dan kelajuannya akan menjadi terlalu perlahan.

2. Laluan client_body_temp_path mesti mempunyai kebenaran boleh tulis Ini adalah kesilapan yang jelas. Betulkan sahaja

3.client_max_body_size menetapkan nilai maksimum untuk fail yang dimuat naik Ini berdasarkan pertimbangan keselamatan Kami percaya bahawa pengguna biasa tidak akan atau pada dasarnya tidak akan memuat naik fail yang terlalu besar.

boleh ditetapkan kepada client_max_body_size 100m atau tetapkan nilai ini mengikut perniagaan anda sendiri.

Contoh

konfigurasi nginx.

Kod adalah seperti berikut:

cd /export/servers/nginx/conf/nginx.conf, tambah

location / {
root html;
index index.html index.htm;
client_max_body_size 1000m;
}
dalam bahagian pelayan fail konfigurasi ini Medan client_max_body_size tiada dan ia tidak berfungsi tidak kira bagaimana saya memulakannya semula. Kemudian, fail sub-konfigurasi ditemui dalam fail konfigurasi umum:

Kodnya adalah seperti berikut:

sendfileon;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
include domains/*;
#include domains/chat.local;
#include domains/chat.erp.com;
#include domains/support.chat.com;
#include douains/chat.com;
server {
listen 80;
server_name localhost;
Jadi fail sub-konfigurasi ditemui dan diubah suai dalam sub- fail konfigurasi. Konfigurasi fail subkonfigurasi adalah seperti berikut:

Kodnya adalah seperti berikut:

server
{
listen 80;
server_name chat.erp.360buy.com;
# access_log /export/servers/nginx/logs/chat.erp.360buy.com;
location / {
proxy_pass;
client_max_body_size 1000m;
}
}
Selepas dimulakan semula dengan /export/servers/nginx/sbin/nginx -s reload, masalahnya saiz fail muat naik terhad diselesaikan Selesai.

Kongsi proses penyelesaian saya, saya harap ia akan membantu semua orang.

Jika masih tidak dapat diselesaikan, kita perlu melihat sama ada ia adalah masalah dengan tetapan borang PHP

Kod ini terbahagi kepada dua fail, satu ialah upload.html dan satu lagi ialah upload.php

upload.html

Kodnya adalah seperti berikut:

<form enctype=multipart/form-data action=upload.php method=post>
<input type=hidden name=max_file_size value=100000>
<input name=userfile type=file>
<input type=submit value=上传文件>
</form>
Antaranya,

Sila ambil perhatian bahawa

ialah tag, kami ingin memuat naik fail, mesti dinyatakan sebagai data berbilang bahagian/bentuk, jika tidak pelayan tidak akan tahu apa yang perlu dilakukan.

Perlu diingat bahawa medan nilai tersembunyi bagi pilihan borang max_file_size dalam fail upload.html boleh mengehadkan saiz fail yang dimuat naik dengan menetapkan nilainya.

Nilai max_file_size hanyalah cadangan untuk pelayar, malah ia boleh dipintas dengan mudah. Jadi jangan bergantung pada nilai ini untuk mengehadkan sekatan penyemak imbas. Malah, saiz fail muat naik maksimum dalam tetapan PHP tidak akan menjadi tidak sah. Tetapi adalah lebih baik untuk memasukkan max_file_size dalam borang, kerana ia menjimatkan pengguna kerumitan menghabiskan masa menunggu fail besar untuk dimuat naik hanya untuk mengetahui bahawa fail itu terlalu besar.

upload.php

Kodnya adalah seperti berikut:

$f=&$http_post_files[&#39;myfile&#39;];
$dest_dir=’uploads’;//设定上传目录
$dest=$dest_dir.’/’.date(ymd)._.$f[&#39;name&#39;];//设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f[&#39;tmp_name&#39;],$dest);
chmod($dest, 0755);//设定上传的文件的属性
atau

<?copy($_files[myfile][tmp_name],$_files[myfile][name]);?>
Kandungan tatasusunan $_files di atas contohnya adalah seperti berikut. Kami menganggap bahawa nama medan muat naik fail ialah fail pengguna (nama boleh dinamakan sewenang-wenangnya)

Pembelajaran yang disyorkan: "

Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika php tidak boleh memuat naik imej besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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