Heim > Backend-Entwicklung > PHP-Tutorial > Wie entpacke ich Dateien sicher von einer URL in PHP?

Wie entpacke ich Dateien sicher von einer URL in PHP?

Linda Hamilton
Freigeben: 2024-12-10 21:42:21
Original
468 Leute haben es durchsucht

How to Safely Unzip Files from a URL in PHP?

Dateidekomprimierung in PHP

Sie möchten eine Datei mit PHP dekomprimieren, haben aber Schwierigkeiten, wenn Sie versuchen, den Dateinamen über die URL zu übergeben . Lassen Sie uns das Problem untersuchen und Ihnen eine Lösung anbieten.

Fehleranalyse

Sie erhalten den Dateinamen über $_GET, aber im Code wird das veraltete $HTTP_GET_VARS verwendet, PHP empfiehlt die Verwendung von $_GET. Darüber hinaus verwenden Sie system('unzip $master.zip') zum Entpacken der Datei, was unsicher ist, da hierfür ein Systemaufruf auf dem Server erforderlich ist.

Empfohlene Lösung

PHP bietet eine Erweiterung, die speziell für die Verarbeitung komprimierter Dateien entwickelt wurde, nämlich ZipArchive. Es wird empfohlen, es wie folgt zu verwenden:

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

Relative Pfade behandeln

Wenn Sie möchten, dass die Datei in dasselbe Verzeichnis wie die Datei extrahiert wird, müssen Sie kann die Datei ermitteln Absoluter Pfad und geben Sie ihn wie folgt als Dekomprimierungsziel an:

$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";
}
Nach dem Login kopieren

Sicherheitstipps

Überprüfen Sie immer Benutzereingaben, um das Einschleusen von Schadcode zu verhindern. Denken Sie daran:

Benutzereingaben immer validieren!

Das obige ist der detaillierte Inhalt vonWie entpacke ich Dateien sicher von einer URL in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage