Ich versuche, eine Website mit einem Button zu versehen, der den Download einer PDF-Datei erzwingt.
Hier ist der HTML-Code des Buttons:
%Vor%Und das PHP-Skript so weit:
%Vor%Das scheint die Datei zu laden, aber wenn ich sie öffne, bekomme ich diesen Fehler:
"Adobe Reader konnte 'documents_ECM_IT_ResumeDownload.pdf' nicht öffnen, da es sich entweder nicht um einen unterstützten Dateityp handelt oder weil die Datei beschädigt wurde (z. B. wurde sie als E-Mail-Anhang gesendet und nicht richtig dekodiert)."
Jede Hilfe würde sehr geschätzt werden.
BEARBEITEN Eröffnet das PDF in einem Texteditor und erhielt folgende Nachricht:
"
Warnung : readfile (Dokumente / ECM_IT_ResumeDownload.pdf) [function.readfile]: Fehler beim Öffnen des Streams: Keine solche Datei oder kein Verzeichnis in html / scripts / download. php in Zeile 4
"
Das Dokument ist jedoch definitiv da. in html / documents / ECM_IT_ResumeDownload.pdf
Haben Sie versucht, das abschließende PHP-Tag (das? & gt;) am Ende loszuwerden? Es behandelt die Seite als eine reine PHP-Seite und entfernt mögliche neue Zeilen, die versehentlich an das Ende der Ausgabe angehängt werden könnten. Das hat mir geholfen, als ich Excel-Dateien dynamisch zum Download erstellte und sie als beschädigt heruntergeladen haben. Auf dieser Seite finden Sie weitere Informationen:
Von Ihrer bearbeiteten Frage scheint es so, als ob PHP die Datei nicht finden kann. Versuchen Sie, einen absoluten Pfad zur Datei zu verwenden: "c: \ blah \ de \ blah \ bloo.pdf" oder "c: /blah/de/blah/bloo.pdf". Wenn einer dieser Pfade korrekt funktioniert und heruntergeladen wird, ist Ihr relativer Pfad in gewisser Weise falsch.
Versuchen Sie, den Pfad zur Datei zu entfernen und lassen Sie den Dateinamen im Inhalt:
%Vor%Ich benutze immer das Download-Skript von Gowon Patterson, es hat auch einen Hotlink-Schutz: Ссылка
Übrigens, ein bisschen spät, aber um das Problem hier richtig zu identifizieren:
Ihr Download-Skript befindet sich unter scripts/download.php
und die Datei, die Sie herunterladen möchten, befindet sich unter documents/[...].pdf
.
Daher sollte Ihre Funktion readfile()
auf das übergeordnete Verzeichnis (außerhalb von scripts/
), z. readfile('../documents/[...].pdf');
.
Tags und Links html php http-headers download