Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membongkar Fail dengan Selamat dari URL dalam PHP?

Bagaimana untuk Membongkar Fail dengan Selamat dari URL dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-10 21:42:21
asal
470 orang telah melayarinya

How to Safely Unzip Files from a URL in PHP?

Penyahmampatan fail dalam PHP

Anda ingin menyahmampat fail menggunakan PHP tetapi menghadapi kesukaran apabila anda cuba menghantar nama fail melalui URL . Mari kita gali masalah dan berikan anda penyelesaian.

Analisis ralat

Anda mendapat nama fail melalui $_GET, tetapi $HTTP_GET_VARS yang sudah lapuk digunakan dalam kod, PHP mengesyorkan menggunakan $_GET. Selain itu, anda menggunakan system('unzip $master.zip') untuk unzip fail, yang tidak selamat kerana ia memerlukan panggilan sistem dilakukan pada pelayan.

Penyelesaian Disyorkan

PHP menyediakan sambungan yang direka khusus untuk mengendalikan fail termampat, iaitu ZipArchive. Adalah disyorkan untuk menggunakannya seperti ini:

$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
  $zip->extractTo('/myzips/extract_path/');
  $zip->close();
  echo '解压成功!';
} else {
  echo '解压失败!';
}
Salin selepas log masuk

Kendalikan laluan relatif

Jika anda mahu fail diekstrak ke dalam direktori yang sama dengan fail, anda boleh menentukan fail daripada Laluan mutlak dan tentukan ia sebagai sasaran penyahmampatan seperti ini:

$file = 'file.zip';
$path = pathinfo(realpath($file), PATHINFO_DIRNAME);
$zip = new ZipArchive;
$res = $zip->open($file);
if ($res === TRUE) {
  $zip->extractTo($path);
  $zip->close();
  echo "解压成功! $file 已解压到 $path";
} else {
  echo "解压失败!无法打开 $file";
}
Salin selepas log masuk

Petua Keselamatan

Sentiasa sahkan input pengguna untuk mengelakkan suntikan kod berniat jahat. Ingat:

Sentiasa sahkan input pengguna!

Atas ialah kandungan terperinci Bagaimana untuk Membongkar Fail dengan Selamat dari URL dalam PHP?. 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