Rumah pembangunan bahagian belakang tutorial php Penyelesaian kepada kegagalan dalam menghantar fail besar dengan PHP

Penyelesaian kepada kegagalan dalam menghantar fail besar dengan PHP

Mar 08, 2024 am 08:00 AM
Penyelesaian Penggunaan memori Pemprosesan fail besar penghantaran fail php

Penyelesaian kepada kegagalan dalam menghantar fail besar dengan PHP

Apabila membangunkan program PHP, kita sering menghadapi situasi di mana kita perlu menghantar fail besar. Walau bagaimanapun, kadangkala apabila cuba menghantar fail besar, anda menghadapi masalah penghantaran yang tidak berjaya. Artikel ini akan memperkenalkan cara untuk menyelesaikan masalah penghantaran fail besar yang tidak berjaya dalam PHP, dan memberikan contoh kod khusus untuk rujukan anda.

  1. Gunakan kaedah chunk untuk menghantar fail:

Apabila berurusan dengan fail yang besar, anda boleh mempertimbangkan untuk membahagikan fail kepada ketulan kecil dan menghantarnya secara beransur-ansur Ini boleh mengelakkan masalah limpahan memori yang disebabkan oleh menghantar fail besar sekaligus. Berikut ialah kod contoh mudah:

$file = "path/to/largefile.zip";
$handle = fopen($file, "rb");
$chunkSize = 1024 * 1024; // 1MB chunk

while (!feof($handle)) {
    $chunk = fread($handle, $chunkSize);
    // 发送 $chunk 到客户端
    echo $chunk;
}

fclose($handle);
Salin selepas log masuk
  1. Menghantar fail menggunakan strim:

Cara lain untuk mengendalikan penghantaran fail besar ialah menggunakan pemprosesan strim. Pendekatan ini mengurangkan penggunaan memori dan membolehkan penghantaran fail besar dengan lebih cekap. Berikut ialah contoh kod untuk penghantaran fail penstriman:

$file = "path/to/largefile.zip";
$handle = fopen($file, "rb");

header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename="" . basename($file) . """);

while (!feof($handle)) {
    echo fread($handle, 1024);
    ob_flush();
    flush();
}

fclose($handle);
Salin selepas log masuk
  1. Laraskan konfigurasi pelayan:

Apabila menghantar fail besar, anda juga perlu memberi perhatian kepada konfigurasi pelayan yang berkaitan. Anda boleh meningkatkan nilai parameter berikut dengan sewajarnya dalam fail php.ini:

  • upload_max_filesize: Tetapkan saiz maksimum fail yang dimuat naik
  • post_max_size: Tetapkan saiz maksimum data POST
  • max_execution_time: Tetapkan maksimum . masa skrip PHP

Melaraskan parameter ini dengan betul boleh membantu menghantar fail besar dengan lancar dan mengelakkan kegagalan penghantaran.

Melalui kaedah di atas, kami boleh menyelesaikan masalah penghantaran fail besar dalam PHP yang tidak berjaya dan memastikan penghantaran fail besar berjalan lancar. Apabila memproses fail besar, kita perlu memberi perhatian kepada penggunaan memori dan pelarasan konfigurasi pelayan untuk memastikan keberkesanan dan kestabilan penghantaran fail. Saya harap kandungan di atas dapat membantu semua.

Atas ialah kandungan terperinci Penyelesaian kepada kegagalan dalam menghantar fail besar dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Langkah terperinci untuk membersihkan memori di Xiaohongshu Langkah terperinci untuk membersihkan memori di Xiaohongshu Apr 26, 2024 am 10:43 AM

Langkah terperinci untuk membersihkan memori di Xiaohongshu

Cara menyempurnakan deepseek di dalam negara Cara menyempurnakan deepseek di dalam negara Feb 19, 2025 pm 05:21 PM

Cara menyempurnakan deepseek di dalam negara

Operasi pencetak tidak dapat diselesaikan ralat 0x0000709 Penyelesaian Operasi pencetak tidak dapat diselesaikan ralat 0x0000709 Penyelesaian Apr 20, 2024 pm 10:10 PM

Operasi pencetak tidak dapat diselesaikan ralat 0x0000709 Penyelesaian

Apa yang perlu dilakukan jika telefon Huawei anda mempunyai memori yang tidak mencukupi (Kaedah praktikal untuk menyelesaikan masalah memori yang tidak mencukupi) Apa yang perlu dilakukan jika telefon Huawei anda mempunyai memori yang tidak mencukupi (Kaedah praktikal untuk menyelesaikan masalah memori yang tidak mencukupi) Apr 29, 2024 pm 06:34 PM

Apa yang perlu dilakukan jika telefon Huawei anda mempunyai memori yang tidak mencukupi (Kaedah praktikal untuk menyelesaikan masalah memori yang tidak mencukupi)

SOTA terbaharu nuScenes |. SparseAD: Pertanyaan jarang membantu pemanduan autonomi hujung ke hujung yang cekap! SOTA terbaharu nuScenes |. SparseAD: Pertanyaan jarang membantu pemanduan autonomi hujung ke hujung yang cekap! Apr 17, 2024 pm 06:22 PM

SOTA terbaharu nuScenes |. SparseAD: Pertanyaan jarang membantu pemanduan autonomi hujung ke hujung yang cekap!

Apa yang perlu dilakukan jika pelayar Edge menggunakan terlalu banyak memori Apa yang perlu dilakukan jika pelayar Edge menggunakan terlalu banyak memori Apa yang perlu dilakukan jika pelayar Edge menggunakan terlalu banyak memori Apa yang perlu dilakukan jika pelayar Edge menggunakan terlalu banyak memori May 09, 2024 am 11:10 AM

Apa yang perlu dilakukan jika pelayar Edge menggunakan terlalu banyak memori Apa yang perlu dilakukan jika pelayar Edge menggunakan terlalu banyak memori

Dengan hanya $250, pengarah teknikal Hugging Face mengajar anda cara memperhalusi Llama 3 Dengan hanya $250, pengarah teknikal Hugging Face mengajar anda cara memperhalusi Llama 3 May 06, 2024 pm 03:52 PM

Dengan hanya $250, pengarah teknikal Hugging Face mengajar anda cara memperhalusi Llama 3

Adakah win11 mengambil kurang memori daripada win10? Adakah win11 mengambil kurang memori daripada win10? Apr 18, 2024 am 12:57 AM

Adakah win11 mengambil kurang memori daripada win10?

See all articles