Heim  >  Fragen und Antworten  >  Hauptteil

Erstellen Sie dynamische ZIP-Dateien mit variablen Adressen und Dateien und erhalten Sie herunterladbare Links

<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>
P粉513318114P粉513318114410 Tage vor619

Antworte allen(1)Ich werde antworten

  • P粉463824410

    P粉4638244102023-08-09 00:24:08

    $zip->addFile($result); 期望在服务器上传入有效路径,但你传入了该文件的URL。

    同样适用于 $zip_file = $website_url . $directory_path . 'file.zip';

    请使用创建 .dat 文件时使用的相同路径:$zip->addFile($directory_path . 'file.dat')

    Antwort
    0
  • StornierenAntwort