


Bagaimana untuk menyelesaikan masalah tidak dapat memuat naik fail di atas 48MB apabila memuat naik jubin video menggunakan JS, PHP dan Apache?
Apr 01, 2025 am 11:00 AMBatasan 48MB Terobosan: JS, PHP dan Apache Video mengiris penyelesaian
Dalam pembangunan projek kecil, mengendalikan muat naik fail besar sering menghadapi cabaran. Artikel ini akan berkongsi kes praktikal: Cara Mengatasi Had Saiz Fail 48MB Apabila Memuatkan Pengiraan Video Menggunakan JavaScript, PHP dan Apache.
Masalah: 48MB memuat naik hambatan
Projek ini mengamalkan skim muat naik slice, yang secara teorinya menyokong fail 2GB, 1MB setiap keping, dan sehingga 2,000 keping. Walau bagaimanapun, dalam ujian sebenar, selepas memuat naik lebih daripada 48MB (kira -kira 48 keping), permintaan seterusnya mengembalikan 500 kesilapan. Walaupun saiz slice diubahsuai hingga 10MB, masalahnya berterusan.
Analisis dan Penambahbaikan Kod
Kod JavaScript:
Dalam kod asal, objek FormData
hanya dimulakan sekali, menghasilkan setiap permintaan yang membawa semua data slice yang dimuat naik, yang akhirnya melebihi had fcgidmaxrequestlen
Apache.
Kod JavaScript yang lebih baik adalah seperti berikut. Kuncinya adalah untuk menyusun semula objek FormData
sebelum setiap permintaan dihantar:
fungsi videofileupload () { panjang const = 1024 * 1024; // 1MB biarkan permulaan = 0; biarkan akhir = panjang permulaan; biarkan blob_num = 1; biarkan is_stop = 0; this.start = function () { const file = files.files [0]; const blob = cutFile (fail); SendFile (gumpalan, fail); blob_num; } // ... (selebihnya kod tetap sama) ... fungsi SendFile (gumpalan, fail) { jika (is_stop === 0) { const xhr = new XmlHttPrequest (); const form_data = formData baru (); // Kunci: Reinstand Formdata Setiap Masa const total_blob_num = math.ceil (file.size / length); form_data.append ('File', Blob); form_data.append ('blob_num', blob_num); form_data.append ('total_blob_num', total_blob_num); form_data.append ('file_name', file.name); xhr.open ('pos', '/upload.php', palsu); // ... (selebihnya kod tetap sama) ... } } // ... (selebihnya kod tetap sama) ... }
Kod PHP:
Logik penggabungan fail dalam kod PHP juga mungkin mempunyai masalah kecekapan memori. Untuk fail yang besar, streaming disyorkan untuk mengelakkan membaca semua keping ke dalam memori sekaligus. (Kod PHP ditinggalkan di sini kerana kod asal tidak memberikan kebocoran memori yang jelas atau masalah kecekapan, dan tumpuan penambahbaikan adalah di sisi JS)
Ringkasan Penyelesaian
Inti masalah terletak pada penggunaan semula objek FormData
dalam kod JavaScript. Dengan mengembalikan objek FormData
sebelum setiap permintaan, pengumpulan data dielakkan, dengan itu menyelesaikan had muat naik 48MB. Untuk bahagian PHP, jika masalah memori berlaku apabila memproses fail besar, anda perlu mengoptimumkan lagi logik penggabungan fail dan mengamalkan pemprosesan streaming. Penyelesaian penambahbaikan ini secara berkesan menyelesaikan masalah muat naik fail yang besar dan memastikan kestabilan dan kebolehpercayaan muat naik pemotongan video.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah tidak dapat memuat naik fail di atas 48MB apabila memuat naik jubin video menggunakan JS, PHP dan Apache?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyediaan Perisian Saya menggunakan mesin maya dengan Centos-6.6, dengan repo nama tuan rumah. Rujuk langkah -langkah untuk memasang mesin maya Linux di Windows, saya memasang JDK dalam mesin maya itu, rujuk panduan untuk memasang JDK di Linux. Di samping itu, mesin maya dikonfigurasikan dengan log masuk bebas kunci itu sendiri, dan tetapan untuk mengkonfigurasi log masuk bebas utama antara setiap mesin maya dirujuk. Alamat muat turun pakej pemasangan Hadoop adalah: https://mirrors.aliyun.com/apache/hadoop/common/. Saya menggunakan versi Hadoop 2.6.5. Muat naik pakej pemasangan Hadoop ke pelayan dan unzip [root@repo ~] #tarzxv

Nginx dan Apache adalah pelayan web yang kuat, masing -masing dengan kelebihan dan kekurangan yang unik dari segi prestasi, skalabilitas dan kecekapan. 1) Nginx berfungsi dengan baik apabila mengendalikan kandungan statik dan terbalik proxying, sesuai untuk senario konvensional yang tinggi. 2) Apache melakukan lebih baik apabila memproses kandungan dinamik dan sesuai untuk projek yang memerlukan sokongan modul yang kaya. Pemilihan pelayan harus ditentukan berdasarkan keperluan dan senario projek.

Nginx lebih sesuai untuk mengendalikan sambungan serentak yang tinggi, manakala Apache lebih sesuai untuk senario di mana konfigurasi kompleks dan sambungan modul diperlukan. 1.Nginx dikenali dengan prestasi tinggi dan penggunaan sumber yang rendah, dan sesuai untuk kesesuaian yang tinggi. 2.apache terkenal dengan kestabilan dan sambungan modul yang kaya, yang sesuai untuk keperluan konfigurasi kompleks.

Nginx dan Apache masing -masing mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya harus berdasarkan keperluan khusus. 1.Nginx sesuai untuk senario konvensional yang tinggi kerana seni bina yang tidak menyekatnya. 2. Apache sesuai untuk senario rendah-concurrency yang memerlukan konfigurasi kompleks, kerana reka bentuk modularnya.

Langkah -langkah untuk menggunakan laman web Joomla di PHPStudy termasuk: 1) Konfigurasi PHPStudy, pastikan perkhidmatan Apache dan MySQL dijalankan dan periksa keserasian versi PHP; 2) Muat turun dan Decompress Laman Web PHPStudy dari laman web rasmi Joomla ke direktori root phpstudy, dan kemudian lengkapkan pemasangan melalui penyemak imbas mengikut wizard pemasangan; 3) Buat konfigurasi asas, seperti menetapkan nama laman web dan menambah kandungan.

Kod PHP boleh dilaksanakan dengan banyak cara: 1. Gunakan baris arahan untuk terus memasukkan "nama fail php" untuk melaksanakan skrip; 2. Masukkan fail ke dalam direktori root dokumen dan mengaksesnya melalui penyemak imbas melalui pelayan web; 3. Jalankannya dalam IDE dan gunakan alat debugging terbina dalam; 4. Gunakan kotak pasir PHP dalam talian atau platform pelaksanaan kod untuk ujian.

Mengemas kini versi Tomcat dalam sistem Debian secara amnya termasuk proses berikut: Sebelum melakukan operasi kemas kini, pastikan anda membuat sandaran lengkap persekitaran Tomcat yang sedia ada. Ini meliputi folder /OPT /TOMCAT dan dokumen konfigurasi yang berkaitan, seperti server.xml, context.xml, dan web.xml. Tugas sandaran boleh diselesaikan melalui arahan berikut: Sudocp-R/Opt/Tomcat/Opt/Tomcat_backup Dapatkan versi baru Tomcat pergi ke laman web rasmi Apachetomcat untuk memuat turun versi terkini. Menurut sistem Debian anda

Punca bahawa prestasi sistem tidak pulih selepas menyahpasang perkhidmatan APACHE mungkin termasuk penghunian sumber oleh perkhidmatan lain, mesej ralat dalam fail log, penggunaan sumber oleh proses yang tidak normal, masalah sambungan rangkaian, dan residu sistem fail. Pertama, periksa sama ada terdapat perkhidmatan atau proses lain sebelum menyahpasang dengan Apache; Kedua, perhatikan fail log sistem operasi dan cari mesej ralat yang mungkin berlaku semasa proses pemotongan; kedua, periksa penggunaan memori sistem dan beban CPU, dan cari proses yang tidak normal; Kemudian, gunakan arahan NetStat atau SS untuk melihat status sambungan rangkaian untuk memastikan tiada pelabuhan diduduki oleh perkhidmatan lain; Akhirnya, bersihkan fail konfigurasi yang tersisa dan fail log selepas pemasangan untuk mengelakkan menduduki ruang cakera.
