Hat denn keiner Ahnung von PHP ???

Alle Arten von Programmen und Anwendungen: Egal ob Betriebssysteme, Systemtools, Grafikbearbeitung, Musikeditoren oder Textverarbeitung. Hier wird über alles gesprochen.
Fasse
Active Member
Active Member

 
Beiträge: 158
Registriert: 27.12.2000
So 17. Jun 2001, 11:21 - Beitrag #1

Hat denn keiner Ahnung von PHP ???

Ich habe folgendes Problem:
Ich habe ein Formular, was mittels des Submitbuttons eine PHP-Seite aufruft. Diese Seite verarbeitet die Daten und erstellt eine Datei.
Allerdings kann ich diese Datei nur auf dem Server speichern. Das ist zu Hause ja kein Problem, da ich schreibrechte habe, aber im Internet geht das nicht.

Meine Frage nun:
Wie kann ich es programmieren, dass die Datei auf dem Computer des Anwenders gespeichert wird ???

hetfield
Cool Newbie
Cool Newbie

 
Beiträge: 21
Registriert: 21.01.2001
Mo 13. Aug 2001, 12:13 - Beitrag #2

Bitte Keine Werbung zu Anderen Boards

magus
Junior Member
Junior Member

 
Beiträge: 78
Registriert: 22.04.2001
Mo 13. Aug 2001, 15:23 - Beitrag #3

@Freaky:

gar nicht.

Du kannst zwar Serverseitig arbeiten, aber Dateien auf dem Rechner des jeweiligen Nutzers speichern geht nicht bzw. nur in Form von Cookies.

Denn Du eigenen Speicherplatz im Netz hast, dann kannst Du doch auch die Schreibrechte ( CHMOD ) auf dem Server ändern und damit die Daten auch speichern.

Krautwiggerl
Royal Member
Royal Member

 
Beiträge: 1603
Registriert: 12.12.2000
Mo 13. Aug 2001, 15:48 - Beitrag #4

Du kannst uploads auf den Server mit "copy" machen, aber andersrum is nich.

Schlimmer
Active Newbie
Active Newbie

 
Beiträge: 11
Registriert: 10.09.2001
Mo 10. Sep 2001, 19:14 - Beitrag #5

in etwa geht sowas schon

Du kannst nicht das Speichern auf der Festplatte des Besuchers erzwingen, aber eine Datei (auch wenn sie per Skript erzeugt wird) schicken kannst Du schon:

Wichtig ist dabei, dass das PHP-Skript selbst sonst keinen Output gibt und das die header()-Befehle am Anfang des Skripts stehen, sonst meckert PHP (ist so, also ob Du einen Cookie mitten in der Ausgabe versenden willst).

Also: Mit der Zeile

header('Content-type: application/stream-octet');

gibst Du an, dass kein HTML- sondern ein anderer Output kommt. Der Browser des Besuchers wird daraufhin den Download-Dialog öffnen. Es steht Dir frei einen anderen passenden MIME-Type zu verwenden. Da kann es dann aber passieren, dass bei z.B. Word-Dokumenten der Browser das Dokument in seinem Fenster darstellt, statt den Download anzubieten.

Weisst Du, wie gross die Datei ist (kannst Du mit filesize() ermitteln, falls es sich um eine physikalisch vorhandene Datei handelt), dann baue die folgende Zeile in das Skript ein:
header('Content-Length: xxx'), wobei Du bei xxx die Dateigrösse angeben musst.
Dies hat den Vorteil, dass der Downloaddialog einen Fortschrittsbalken anzeigen kann.

Falls es sich um eine physikalisch vorhandene Datzei handelt öffnest Du nun noch die Datei...
$file = fopen('blalblabla.txt', 'r');

...und schickst sie mit
fpassthru($file);
ab.

fclose() kannst Du machen oder Dir auch schenken, da das nach Skriptdurchlauf automatisch passiert.

So etwas gehört eigentlich zu den Standardingen, die oft nachgefragt werden. Du findest im Internet einen ganzen Haufen Seiten, die sich mit wiederkehrenden Programmieraufgaben bzgl. PHP befassen.
Ganz gut z.B.: http://www.phpwelt.de/

Commander
Diligent Member
Diligent Member

 
Beiträge: 220
Registriert: 12.09.2001
Di 18. Sep 2001, 13:23 - Beitrag #6

@All

Ich hab Ahnung von Php und Cgi usw....

Commander:s11:

Krautwiggerl
Royal Member
Royal Member

 
Beiträge: 1603
Registriert: 12.12.2000
Sa 22. Sep 2001, 15:54 - Beitrag #7

@schlimmer:
aber du hast dann immer noch das Problem, dass der Client den Download nicht annehmen muss.
Die Möglichkeit mit dem Header kenne ich auch:

header("Content-disposition: inline; filename=datei.zip");
header("Content-type: application/x-tar");
readfile("datei.zip");
exit();
break;

Natürlich lassen sich auch andere Datei-Formate ausser ZIP schicken, man muss nur den MIME-Type entsprechend verändern.

LeChuckie
Advanced Member
Advanced Member

 
Beiträge: 367
Registriert: 29.05.2001
Di 2. Okt 2001, 11:30 - Beitrag #8

aprops PHP ich bin Anfänger und bis jetzt genügt mir das was ich kann. Ich hab mir das Tuturial von webmaster-resource.de reingezogen. Wo gibt es denn ein gutes für Fortgeschrittene!

Fasse
Active Member
Active Member

 
Beiträge: 158
Registriert: 27.12.2000
Mi 24. Okt 2001, 21:47 - Beitrag #9

@Schlimmer: Das war genau das was ich gesucht habe, werds mal ausprobieren, vielen Dank :s3:


Zurück zu Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste