Erstellen Sie dynamische ZIP-Dateien mit variablen Adressen und Dateien und erhalten Sie herunterladbare Links
P粉513318114
2023-08-08 19:02:30
<p>Ich möchte zwei Dateien in eine ZIP-Datei einfügen, eine ist „Thanks.txt“ und die andere ist „File.dat“, und zwar unter Verwendung des folgenden Codes und eines Links zu dieser ZIP-Datei, aber mein Code wird nicht korrekt ausgeführt, das brauche ich Hilfe bei der Korrektur und Optimierung dieses Codes. <br /><br />Fügen Sie in der Datei „Thanks.txt“ den folgenden Text zusammen mit der Benutzer-E-Mail-Adresse des Kunden ein: <br /><br />Hallo, sehr geehrte '.$email_address . ' Danke, dass du ihn benutzt hast!<br /><br />Mein Code:</p><p><strong></strong></p>
<pre class="brush:php;toolbar:false;">funtion create_zip_file() {
// Aktuelle Benutzer-E-Mail-Adresse abrufen!
$current_user = wp_get_current_user();
$email_address = $current_user->user_email;
$md5_address = md5($email_address);
$directory_path = 'myfiles/cloud/' .
if (!file_exists($directory_path)) {
mkdir($directory_path, 0777, true);
}
$Myfile = file_put_contents($directory_path . 'file.dat' , $email_address);
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
$website_url = 'https://' . $_SERVER['HTTP_HOST'] .'/';
} anders {
$website_url = 'http://' . $_SERVER['HTTP_HOST'] .'/';
}
$result = $website_url . $directory_path .
$zip = neues ZipArchive;
if ($zip->open($zip_file , ZipArchive::CREATE) === TRUE)
{
//Dateien zur ZIP-Datei hinzufügen
$zip->addFile($result);
// Füge eine neue.txt-Datei mit dem angegebenen Text zum ZIP-Archiv hinzu
$zip->addFromString('thanks.txt', 'Hallo, liebe '.$email_address.' Danke, dass du es benutzt hast!');
// Alle Dateien werden hinzugefügt, also schließen Sie die ZIP-Datei
$zip->close();
// Datei nach dem Komprimieren löschen
unlink($result);
}
$zip_file = $website_url . $directory_path .
if (file_exists($zip_file)) {
return $zip_file;
} anders {
falsch zurückgeben;
}
}</pre>
<p><strong>Und ich rufe die Zip-Datei mit folgendem Code auf: </strong></p>
<p><code><a href="<?php echo create_zip_file();"> ZIP-Datei herunterladen </a></code></p>
<p>Wenn ich im folgenden Code eine statische Adresse ($zip_file) verwende: </p>
<p><code>if ($zip->open($zip_file , ZipArchive::CREATE) === TRUE)</code></p>
<p>Die ZIP-Datei wird erstellt, aber wenn ich eine dynamische Adresse verwende, wird die ZIP-Datei nicht erstellt. </p>
$zip->addFile($result);
期望在服务器上传入有效路径,但你传入了该文件的URL。同样适用于 $zip_file = $website_url . $directory_path . 'file.zip';
请使用创建 .dat 文件时使用的相同路径:$zip->addFile($directory_path . 'file.dat')