[php] Datei Signieherunterladen Und Signieren
#1 _PelzigesWaldtier_
geschrieben 08. April 2005 - 18:06
ich habe ein Script, in dem registrierte Benutzer Dateien herunterladen koennen. Nun moechte ich aber nicht, dass der Benutzer den wirklichen Dateinamen der Datei, die er gerade herunterlaed kennt. Gibt es eine Moeglichkeit die Datei zum Browser des Bnutzers zu streamen? Ich moechte naemlich, dass man sich jedes mal anmelden muss, um eine Datei herunterladen yu koennen. Wenn der Benutzer naemlich jetzt den richtigen Dateinamen auf dem Server kennen wuerde, dann koennte er die URL weitergeben und jeder koennte die Datei herunterladen.
Nun zu meiner zweiten Frage: Wie kann ich an eine Datei einige Daten wie Datum des Downloads usw. anhaengen. Diese Daten sind fuer den Benutzer nicht sofort
sichtbar und verhindern das Ausfuehren und Verwenden der Datei nicht. ist soetwas moeglich?
Vielen Dank schon jetzt fuer euere Hilfe,
PelzigesWaldtier
Anzeige
#2
geschrieben 08. April 2005 - 20:43
Zuerst den passenden Header setzen
header('Content-Type: application/octet-stream');
und dann eine Datei aufrufen bzw direkt ausgeben mit readfile.
readfile('filename');
Etwas komplexer könnte man es dann so machen wie einer in den Kommentaren der Hilfedatei vorschlägt:
<?php
header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header ("Content-Type: application/octet-stream");
header ("Content-Length: " . filesize($theFile));
header ("Content-Disposition: attachment; filename=$theFileName");
readfile($theFile);
?>
#3 _PelzigesWaldtier_
geschrieben 08. April 2005 - 22:56
Danke fuer die Antwort! Das geht schon soweit. Nur muss ich jetzt noch "Content-Type" anpassen. Dafuer nehme ich mime_content_type(). Allerdings wird immer entweder text/plain oder application/octet-stream zurueckgegeben.
Mein Code sieht gerade so aus:
header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header ("Content-Type: ".mime_content_type('upload/'.$document['file_name']));
header ("Content-Length: " . filesize('upload/'.$document['file_name']));
header ("Content-Disposition: attachment; filename=".$document['file_display']);
readfile('upload/'.$document['file_name']);
Wie mache ich das richtig?
Gruesse,
PW
#4
geschrieben 09. April 2005 - 08:49
#5
geschrieben 09. April 2005 - 16:56
#6 _PelzigesWaldtier_
geschrieben 09. April 2005 - 20:41
Nun habe ich nur noch meine zweite Frage. Wie kann ich an eine Datei Daten anhaengen, ohne sie zu beschaedigen (Fehler beim Oeffnen usw.)? Hat da jemand ne Idee?
Gruesse,
PW
#7
geschrieben 09. April 2005 - 21:53
#8 _PelzigesWaldtier_
geschrieben 10. April 2005 - 19:30
Ich will die Daten z.b. ans Ende der Datei anhaengen und dann eine Pruefsumme dieser zusaetzlichen Daten in der Datenbank speichern, um eine Manipulation feststellen zu koennen.
Btw, die Benutzer muessen eine Einverstaendnisserklaerung akzeptieren, in der diese auf diese Punkte hingewiesen wird. Macht euch also keine Sorgen um "der User will das aber nicht".
Danke.
PW
#9
geschrieben 10. April 2005 - 19:34
Einfach php die Dateien/Ordner zugänglich machen und dort die Files speichern. Somit kann man dann die Dateien nur noch per Skript downloaden.
#10
geschrieben 10. April 2005 - 19:51
#11 _PelzigesWaldtier_
geschrieben 10. April 2005 - 20:38

Hilfe
Neues Thema
Antworten
Nach oben


