


Bagaimana untuk menutup muat turun pelayar menggunakan php
Dalam pembangunan web, kadangkala ia perlu untuk memaparkan fail dalam penyemak imbas dan bukannya membenarkan penyemak imbas memuat turun fail secara setempat. Proses ini boleh dicapai melalui kod PHP, dan artikel ini akan memperincikan cara menggunakan PHP untuk mematikan muat turun penyemak imbas.
- Menggunakan pengepala HTTP
Pengepala HTTP ialah sebahagian daripada permintaan dan respons HTTP dan mengandungi maklumat yang diperlukan untuk respons HTTP. Kita boleh menggunakan fungsi pengepala dalam PHP untuk menetapkan fail pengepala HTTP untuk membuka fail dalam penyemak imbas.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi pengepala untuk memaparkan fail PDF dalam penyemak imbas:
<?php $file = 'sample.pdf'; header('Content-type: application/pdf'); header('Content-Disposition: inline; filename="' . $file . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
Kod ini mula-mula membuka fail PDF, dan kemudian menggunakan pengepala berfungsi untuk menetapkan fail pengepala HTTP. Antaranya, Content-type memberitahu penyemak imbas bahawa kandungan respons adalah dalam format PDF Content-Disposition: inline membolehkan penyemak imbas memaparkan fail sebaris dalam halaman: perduaan menentukan bahawa fail dipindahkan dalam binari mod. Kandungan -Length menentukan saiz data respons, dan Accept-Ranges: bait menentukan bahawa pelayan menyokong permintaan dalam julat bait.
Akhir sekali, gunakan fungsi readfile untuk membaca kandungan fail dan memaparkannya dalam pelayar dalam format HTML.
- Mengendalikan jenis fail yang berbeza
Selain PDF, kami juga boleh menggunakan fungsi pengepala untuk memaparkan jenis fail lain, seperti gambar, audio, video, dsb. . Hanya tentukan jenis fail dalam Jenis kandungan.
Berikut ialah beberapa jenis fail biasa dan nilai jenis Kandungannya:
文件类型 | Content-type |
---|---|
图片 | image/jpeg, image/png, image/gif, image/bmp |
application/pdf | |
文本文件 | text/plain |
音频 | audio/mpeg, audio/ogg, audio/wav |
视频 | video/mp4, video/ogg, video/webm |
Berikut ialah contoh yang menunjukkan cara memaparkan imej dalam penyemak imbas:
<?php $file = 'sample.jpg'; header('Content-type: image/jpeg'); header('Content-Disposition: inline; filename="' . $file . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
- Muat turun fail
Jika anda perlu memuat turun fail dan bukannya memaparkannya dalam penyemak imbas, kami boleh menggunakan pengepala Content-Disposition untuk memberitahu penyemak imbas memuat turun fail.
Berikut ialah contoh yang menunjukkan cara memuat turun fail dalam penyemak imbas:
<?php $file = 'sample.zip'; $filename = 'download.zip'; header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
Dalam contoh ini, kami menetapkan pengepala Pelupusan Kandungan untuk mengarahkan penyemak imbas memuat turun fail. Parameter nama fail digunakan untuk menentukan nama fail fail yang dimuat turun.
- Memproses fail besar
Untuk fail besar, kita perlu mempertimbangkan isu prestasi dan tidak boleh membaca keseluruhan fail ke dalam memori pada satu masa. Masalah ini boleh diselesaikan melalui penimbal keluaran PHP (ob_*) dan fungsi flush. Kaedah khusus adalah untuk mengeluarkan fail pengepala HTTP dahulu, kemudian mengeluarkan blok kandungan fail demi blok, dan menggunakan fungsi siram untuk menolak kandungan ke penyemak imbas untuk setiap bahagian output.
Berikut ialah contoh yang menunjukkan cara memproses fail besar:
<?php $file = 'bigfile.zip'; $filename = 'download.zip'; $chunksize = 4096; header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Accept-Ranges: bytes'); header('Content-Length: ' . filesize($file)); $handle = fopen($file, 'rb'); while (!feof($handle)) { $buffer = fread($handle, $chunksize); echo $buffer; ob_flush(); flush(); } fclose($handle); ?>
Dalam contoh ini, kami membaca kandungan fail 4096 bait setiap kali dan kemudian mengeluarkannya sekatan demi blok. Perhatikan bahawa di dalam gelung, kami menggunakan fungsi ob_flush dan flush untuk menolak kandungan penimbal ke penyemak imbas.
Ringkasan: Gunakan PHP untuk mematikan muat turun penyemak imbas
Dalam artikel ini, kami memperkenalkan cara menggunakan PHP untuk mematikan muat turun penyemak imbas, termasuk memaparkan fail, mengendalikan jenis fail yang berbeza, memuat turun fail dan memproses fail besar. Pengetahuan ini sangat penting untuk pembangun web saya harap artikel ini dapat membantu anda.
Atas ialah kandungan terperinci Bagaimana untuk menutup muat turun pelayar menggunakan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

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



Artikel ini mengkaji piawaian pengekodan PHP semasa dan amalan terbaik, memberi tumpuan kepada cadangan PSR (PSR-1, PSR-2, PSR-4, PSR-12). Ia menekankan peningkatan kebolehbacaan dan kebolehkerjaan kod melalui gaya yang konsisten, penamaan bermakna, dan EFF

Butiran artikel ini melaksanakan beratur mesej dalam PHP menggunakan RabbitMQ dan Redis. Ia membandingkan seni bina mereka (AMQP vs dalam memori), ciri-ciri, dan mekanisme kebolehpercayaan (pengesahan, urus niaga, kegigihan). Amalan terbaik untuk reka bentuk, kesilapan

Butiran artikel ini memasang dan menyelesaikan masalah PHP, memberi tumpuan kepada PECL. Ia meliputi langkah pemasangan (mencari, memuat turun/menyusun, membolehkan, memulakan semula pelayan), teknik penyelesaian masalah (memeriksa log, mengesahkan pemasangan,

Artikel ini menerangkan API Refleksi PHP, membolehkan pemeriksaan runtime dan manipulasi kelas, kaedah, dan sifat. IT memperincikan kes penggunaan biasa (penjanaan dokumentasi, ORM, suntikan pergantungan) dan memberi amaran terhadap prestasi overhea

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Artikel ini meneroka strategi untuk kekal semasa dalam ekosistem PHP. Ia menekankan penggunaan saluran rasmi, forum komuniti, persidangan, dan sumbangan sumber terbuka. Penulis menyoroti sumber terbaik untuk mempelajari ciri -ciri baru dan a

Artikel ini meneroka pelaksanaan tugas tak segerak dalam PHP untuk meningkatkan respons aplikasi web. Ia memperincikan kaedah seperti beratur mesej, rangka kerja asynchronous (reactphp, swoole), dan proses latar belakang, menekankan amalan terbaik untuk kecekapan

Artikel ini menangani pengoptimuman memori PHP. IT memperincikan teknik seperti menggunakan struktur data yang sesuai, mengelakkan penciptaan objek yang tidak perlu, dan menggunakan algoritma yang cekap. Sumber kebocoran memori biasa (mis., Sambungan yang tidak terkawal, global v
