WinFuture-Forum.de: [php] Datei Signieherunterladen Und Signieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[php] Datei Signieherunterladen Und Signieren


#1 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 08. April 2005 - 18:06

Moin,

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
0

Anzeige



#2 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 08. April 2005 - 20:43

Also wenn du eine Datei "streamen" willst, dann müsste das theoretisch so gehen.
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);
?>

0

#3 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 08. April 2005 - 22:56

Hallo,

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
0

#4 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 09. April 2005 - 08:49

Wahrscheinlich sind die Dateierweiterungen bei dir nicht eingetragen. Du kannst doch auch einfach selber eine Funktion schreiben die die Dateiendung überprüft.
0

#5 Mitglied ist offline   st0ne 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 09. April 05
  • Reputation: 0

geschrieben 09. April 2005 - 16:56

oder gleich beim Hochladen den Datei Typ mitspeichern (z.b. image/jpg) und den Wert beim streamen schicken.
0

#6 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 09. April 2005 - 20:41

Ok, danke! Ich habe mir ne Funktion geschrieben, die abhaengig von der Dateiendung nen MIME-Typen zurueckgibt. Die Datei wird nun korrekt runtergeladen und nun funktioniert alles wunderbar.

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
0

#7 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 09. April 2005 - 21:53

Hm, ich wüsste jetzt nicht wie man zusätzliche Informationen einer Datei hinzufügt. Wenn es sich um wenige Informationen handelt, würde ich vorschlagen diese gzipped in dem Dateinamen zu speichern.
0

#8 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 10. April 2005 - 19:30

Den Dateinamen kann der Benutzer ja leicht aendern. Wenn der Benutzer die Daten aendern will, dann muss er es mutwillig tun. Aenderungen im Dateinamen koennen vom Benutzer ja auch zur besseren Uebersicht vorgenommen werden.

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". :wink:

Danke.
PW
0

#9 Mitglied ist offline   puppet 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.857
  • Beigetreten: 27. April 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Rudoltown

geschrieben 10. April 2005 - 19:34

Wie wäre es wenn du die Dateien einfach ausserhalb des public-www Ordners (z.B. /var/www/htdocs) speicherst (z.B. /var/www/files)?
Einfach php die Dateien/Ordner zugänglich machen und dort die Files speichern. Somit kann man dann die Dateien nur noch per Skript downloaden.
0

#10 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 10. April 2005 - 19:51

Wenn du einer Datei einen Kommentar anheften möchtest, geht das vielleicht mit einer ZIP Datei, solche unterstützen diese Funktion nämlich.
0

#11 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 10. April 2005 - 20:38

Der Benutzer entpackt die Dateien und gibt sie weiter. Dann habe ich ne leere ZIP-Datei, die mir herzlich wenig bringt. Ich moechte die Infos direkt an die eigentliche Datei anbringen.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0