Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Melaksanakan Muat Turun Boleh Semula dalam PHP Semasa Melindungi Laluan Fail?

Bagaimanakah Saya Boleh Melaksanakan Muat Turun Boleh Semula dalam PHP Semasa Melindungi Laluan Fail?

Linda Hamilton
Lepaskan: 2024-12-26 11:50:10
asal
857 orang telah melayarinya

How Can I Implement Resumable Downloads in PHP While Protecting File Paths?

Muat Turun Boleh Disambung semula dalam Skrip PHP

Apabila terowong muat turun fail melalui skrip PHP untuk melindungi laluan fail, ia menjadi jelas bahawa kaedah lalai tidak menyokong muat turun boleh disambung semula. Untuk menangani isu ini, pertimbangkan penyelesaian berikut:

Inti menyokong muat turun boleh disambung semula adalah untuk melaksanakan pengendalian kandungan separa. Untuk memulakan ini, hantarkan pengepala Accept-Ranges: bytes dalam semua respons, menunjukkan sokongan untuk kandungan separa.

Setelah menerima permintaan dengan pengepala Julat: bytes=x-y, huraikan julat yang ditentukan oleh klien. Buka fail, cari bait x, dan hantar bait y - x yang diminta. Selain itu, tetapkan status respons kepada HTTP/1.0 206 Kandungan Separa.

Berikut ialah coretan kod PHP asas yang mengikuti pendekatan ini secara longgar:

$filesize = filesize($file);

if (isset($_SERVER['HTTP_RANGE'])) {
    $partialContent = true;
    preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches);

    $offset = intval($matches[1]);
    $length = intval($matches[2]) - $offset;
} else {
    $partialContent = false;
}

$file = fopen($file, 'r');
fseek($file, $offset);

$data = fread($file, $length);
fclose($file);

if ($partialContent) {
    header('HTTP/1.1 206 Partial Content');
    header('Content-Range: bytes ' . $offset . '-' . ($offset + $length) . '/' . $filesize);
}

header('Content-Type: ' . $ctype);
header('Content-Length: ' . $filesize);
header('Content-Disposition: attachment; filename="' . $fileName . '"');
header('Accept-Ranges: bytes');

print($data);
Salin selepas log masuk

Dengan menggabungkan mekanisme ini, anda mendayakan boleh disambung semula muat turun sambil mengekalkan privasi lokasi fail dengan menggunakan skrip PHP untuk terowong.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Muat Turun Boleh Semula dalam PHP Semasa Melindungi Laluan Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan