*.csv Datei in CGI Verzeichnis anzeigen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
ichagx03
User
Beiträge: 10
Registriert: Mittwoch 10. Januar 2007, 23:59

Donnerstag 11. Januar 2007, 00:05

Hallo

Ich erstelle über ein Python skript eine *.csv Datei. Das geht soweit auch alles gut.
Jetzt möchte ich aber auf diese Datei einen Link machen können, so das man die Datei Downloaden kann. Bei einem Link auf die Datei (im cgi-bin Verzeichnis) bekomme ich aber eine Fehlermeldung:
Fehlermeldung:
Premature end of script headers: ausgabe.csv
Ich habe dann versucht die Datei nicht im cgi-bin verzeichniss abzuspeichern. Dies geht dann aber nicht mehr (Schreibrechte sind gegeben).

Kann mir jemand weiter helfen?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 11. Januar 2007, 18:07

Hallo ichagx03, willkommen im Forum!
ichagx03 hat geschrieben:Dies geht dann aber nicht mehr (Schreibrechte sind gegeben).
Wie lautet die Fehlermeldung?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Donnerstag 11. Januar 2007, 20:29

Dein cgi-bin/ ist nur für CGI-Skripte gedacht. Bei jedem Request nach Dateien in cgi-bin/ wird versucht, die Datei als Skript auszuführen.

Entweder du legst sie in einem Nicht-CGI-Verzeichnis ab, oder du schreibst ein Skript, das einfach nur die Datei an den Empfänger durchgibt.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
ichagx03
User
Beiträge: 10
Registriert: Mittwoch 10. Januar 2007, 23:59

Donnerstag 11. Januar 2007, 20:47

Die Fehlermeldung wenn ich auserhalb des cgi-bin Pfades etwas schreiben möchte sieht so aus:
IOError: [Errno 2] No such file or directory: '/temp/ausgabe.csv'
args = (2, 'No such file or directory')
errno = 2
filename = '/temp/ausgabe.csv'
strerror = 'No such file or directory'
birkenfeld hat geschrieben:Dein cgi-bin/ ist nur für CGI-Skripte gedacht. Bei jedem Request nach Dateien in cgi-bin/ wird versucht, die Datei als Skript auszuführen.

Entweder du legst sie in einem Nicht-CGI-Verzeichnis ab, oder du schreibst ein Skript, das einfach nur die Datei an den Empfänger durchgibt.
Dies dachte ich mir. aber es muss doch irgendwie möglich sein die Datei auserhalb zu speichern. Ich will nicht die Datei anzeigen, sondern man muss sie downloaden können.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Donnerstag 11. Januar 2007, 20:54

Gibt es das Verzeichnis `/temp`? Unter Unix-Systemen heißt das nämlich `/tmp`.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
ichagx03
User
Beiträge: 10
Registriert: Mittwoch 10. Januar 2007, 23:59

Donnerstag 11. Januar 2007, 21:09

ja schon. aber dieses Verzeichnis habe ich selber angelegt. das Verzeichnis existiert also.
BlackJack

Donnerstag 11. Januar 2007, 21:12

Liste Dir von einem CGI Skript aus doch mal den Inhalt von '/' auf. Würde mich nicht wundern wenn der Webserver in einer `chroot`-Umgebung läuft und '/' nicht das ist, was Du denkst.
ichagx03
User
Beiträge: 10
Registriert: Mittwoch 10. Januar 2007, 23:59

Donnerstag 11. Januar 2007, 21:33

oke. hasst recht es ist eine chroot-Umgebung.
aber ich kann meine Datei auch nicht mit relativen Pfad angaben oder wenn ich den ganzen pfad (webadresse à la "www.demo.ch/temp") eingebe. schreiben.
Bei der relativen pfad angabe kommt zwar keine Fehlermeldung. aber es schreibt auch nichts.
ichagx03
User
Beiträge: 10
Registriert: Mittwoch 10. Januar 2007, 23:59

Donnerstag 11. Januar 2007, 21:39

Es hat jetzt doch noch geklappt mit relativer angabe. (habe einen kleine Schreibfehler gemacht ;) )
Ich danke euch für die Hilfe. Ist echt ein gutes Forum. Ich könnte mir vorstellen das ich in zukunft ab und zu hir verbei schauen werde.
BlackJack

Donnerstag 11. Januar 2007, 21:40

Die "Webadresse" geht natürlich nicht, Dateienamen und URLs sind zwei verschiedene Dinge.

Wenn Du einen relativen Pfad benutzt um etwas zu schreiben und keine Fehlermeldung kommt, wird auch irgendwo eine Datei erzeugt. Du musst herausfinden welche Pfade der Webserver "sieht".
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 12. Januar 2007, 10:48

btw.: [wiki]Web-Skripte zum laufen bringen[/wiki] :lol:

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten