/PHP: Datei einlesen ohne Upload?
Hans
- programmiertechnik
Moin,
Ich wollte mit einem PHP-Script eine Datei zeilenweise einlesen, die der Benutzer über ein Upload-Feld festlegt. Dabei verwende ich zum Lesen "fopen" in einer while Schleife.
Da es leider nicht funktioniert, gehe ich davon aus, dass die Datei erst upgeloadet werden muss. Kennt jemand einen anderen Weg?
danke!
Hans
Hallo!
Ich wollte mit einem PHP-Script eine Datei zeilenweise einlesen, die der Benutzer über ein Upload-Feld festlegt. Dabei verwende ich zum Lesen "fopen" in einer while Schleife.
Da es leider nicht funktioniert, gehe ich davon aus, dass die Datei erst upgeloadet werden muss. Kennt jemand einen anderen Weg?
Mit PHP kannst du nur Files einlesen, die am Server liegen. Dh du musst die Datei zuerst uploaden. HTML Formular mit File - Feld -> Uploaden -> File verarbeiten.
Woran scheiterst du?
mfg
frafu
Hallo!
Ich wollte mit einem PHP-Script eine Datei zeilenweise einlesen, die der Benutzer über ein Upload-Feld festlegt. Dabei verwende ich zum Lesen "fopen" in einer while Schleife.
Da es leider nicht funktioniert, gehe ich davon aus, dass die Datei erst upgeloadet werden muss. Kennt jemand einen anderen Weg?Mit PHP kannst du nur Files einlesen, die am Server liegen. Dh du musst die Datei zuerst uploaden. HTML Formular mit File - Feld -> Uploaden -> File verarbeiten.
Woran scheiterst du?
mfg
frafu
Das stimmt doch so gar nicht, warum erzählst Du denn so einen Unfug?
Klar kann man Dateien auch extern öffnen, man muß nur Zugang/Berechtigung dazu haben!
Siehe php-Manual (http://de.php.net/function.fopen):
"Kam PHP zum Schluss, dass es sich bei filename um ein registriertes Protokoll handelt, und ist dieses Protokoll als eine Netzwerk URL registriert, prüft PHP, ob allow_url_fopen aktiviert ist. Ist es nicht aktiviert, gibt PHP eine Warnung aus, und der Aufruf von fopen wird scheitern"
Dann doch lieber ruhig sein, bevor man die Leute hier noch irre führt, bzw. falsche Tatsachen verbreitet, denn das hilft KEINEM!
hi,
Das stimmt doch so gar nicht, warum erzählst Du denn so einen Unfug?
Und selber?
Klar kann man Dateien auch extern öffnen, man muß nur Zugang/Berechtigung dazu haben!
Siehe php-Manual (http://de.php.net/function.fopen):
"Kam PHP zum Schluss, dass es sich bei filename um ein registriertes Protokoll handelt, und ist dieses Protokoll als eine Netzwerk URL registriert, prüft PHP, ob allow_url_fopen aktiviert ist. Ist es nicht aktiviert, gibt PHP eine Warnung aus, und der Aufruf von fopen wird scheitern"
Und die Dateien auf meinem lokalen Rechner sprichst du von deinem Server aus über welches registrierte Protokoll bitte an?
Dann doch lieber ruhig sein, bevor man die Leute hier noch irre führt, bzw. falsche Tatsachen verbreitet, denn das hilft KEINEM!
Das gilt aber für dich viel eher.
P.S.: Bitte zitiere zukünftig _sinnvoll.
gruß,
wahsaga
hi,
Das stimmt doch so gar nicht, warum erzählst Du denn so einen Unfug?
Und selber?
Klar kann man Dateien auch extern öffnen, man muß nur Zugang/Berechtigung dazu haben!
Siehe php-Manual (http://de.php.net/function.fopen):
"Kam PHP zum Schluss, dass es sich bei filename um ein registriertes Protokoll handelt, und ist dieses Protokoll als eine Netzwerk URL registriert, prüft PHP, ob allow_url_fopen aktiviert ist. Ist es nicht aktiviert, gibt PHP eine Warnung aus, und der Aufruf von fopen wird scheitern"
Und die Dateien auf meinem lokalen Rechner sprichst du von deinem Server aus über welches registrierte Protokoll bitte an?
Dann doch lieber ruhig sein, bevor man die Leute hier noch irre führt, bzw. falsche Tatsachen verbreitet, denn das hilft KEINEM!
Da liegt zwar gerade das zu lösende Problem, aber ist ja auch egal!
Daher meinte ich ja auch im Beitrag zuvor das ich weiß das man auf externe Dateien zugreifen kann wenn es ein Server ist , aber nicht ob man auch auf "normale" Recher kommt!!
Und wenn jemand ja per Internet hochlädt ist er ja auch erreichbar, er muß nur die Möglichkeit dazu bieten!!!
Um auf das Protokoll zu sprtechen zu kommen, es gibt auch ein Netzwerkprotokoll, evtl. kann man ja über Internet-netzwerk zugreifen!!!!
ich sagte niemals das es standart ist, und bei jederr Datei, oder jedem Benutzer klappen wird!!!!!
Das gilt aber für dich viel eher.
-Lieber mal erstmal alles lesen, und an die eigene Nase packen-
P.S.: Bitte zitiere zukünftig _sinnvoll.
gruß,
wahsaga
hi,
Daher meinte ich ja auch im Beitrag zuvor das ich weiß das man auf externe Dateien zugreifen kann wenn es ein Server ist , aber nicht ob man auch auf "normale" Recher kommt!!
Und wenn jemand ja per Internet hochlädt ist er ja auch erreichbar,
Woraus schließt du, dass er dann "erreichbar" wäre?
Und wie definierst du "erreichbar"?
er muß nur die Möglichkeit dazu bieten!!!
Und warum sollte er das tun?
Um auf das Protokoll zu sprtechen zu kommen, es gibt auch ein Netzwerkprotokoll, evtl. kann man ja über Internet-netzwerk zugreifen!!!!
Wenn Internet und Netzwerk (in dem Sinne, in dem du es hier benutzt) derart "vermischt" wären, würde ich das eine eklatante Fehlkonfiguration nennen.
-Lieber mal erstmal alles lesen, und an die eigene Nase packen-
Gut, dann mach das jetzt bitte - und lies das, was ich dir bzgl. des Zitierens sagte:
P.S.: Bitte zitiere zukünftig _sinnvoll.
gruß,
wahsaga
und lies das, was ich dir bzgl. des Zitierens sagte:
Also wenn ich das hier lese:
dazu bieten!!!
zugreifen!!!!
fällt mir dazu nur ein Zitat ein:
"Multiple exclamation marks", he went on, shaking his head, "are a sure sign of a diseased mind."
*SCNR*
Hallo!
Mit PHP kannst du nur Files einlesen, die am Server liegen. Dh du musst die Datei zuerst uploaden. HTML Formular mit File - Feld -> Uploaden -> File verarbeiten.
Das stimmt doch so gar nicht, warum erzählst Du denn so einen Unfug?
Da hst du recht. Sorry. Ich bin vom 0815 Fall ausgegangen und hab gemeint, dass er keinen Zugriff auf das FS vom Client hat.
mfg
frafu
Hallo Anonymus!
Das stimmt doch so gar nicht, warum erzählst Du denn so einen Unfug?
[...]
Dann doch lieber ruhig sein, bevor man die Leute hier noch irre führt, bzw. falsche Tatsachen verbreitet, denn das hilft KEINEM!
Ich sag nuhr [sic!]: Dieter Nuhr.
Ciao,
Martin
Moin,
Ich wollte mit einem PHP-Script eine Datei zeilenweise einlesen, die der Benutzer über ein Upload-Feld festlegt. Dabei verwende ich zum Lesen "fopen" in einer while Schleife.
Da es leider nicht funktioniert, gehe ich davon aus, dass die Datei erst upgeloadet werden muss. Kennt jemand einen anderen Weg?danke!
Hans
Cool, an dem Problem sitzte ich im Moment auch!
Leider bin ich auch noch nicht dahinter gekommen ob, und wenn wie, man durch das Script beim Absenden ermitteln kann von wo (Pfad der hochzuladenen Datei) der Benutzer die ausgewählte Datei hochlädt!
Dann könnte man mit dem ermitteltem Pfad auf die externe Datei (des Benutzers) zugreifen, bzw. sie einlesen, ohne das Sie geuploadet werden müsste!!
Denn das Problem liegt ja nur darin das so normalerweise das Script versucht die Datei "lokal" zu öffnen, was ja nur geht wenn Sie vorhanden ist!!!
Das es möglich ist auf externe Dateien entnehme ich folgendem Zitat aus dem php-Manual, nur ist dann wiederum die Frage darf man denn dann auch auf dem betreffenden Rechenr des Benutzers zugreifen, bzw. die Datei einlesen :
"Ist PHP zu dem Schluss gekommen, dass filename eine lokale Datei spezifiziert, wird es versuchen, einen Stream an dieser Datei zu öffnen. Die Datei muss für PHP verfügbar sein, weshalb Sie sicherstellen müssen, dass die Dateirechte diesen Zugriff ermöglichen"
Und ich glaube da liegt der Knackpunkt, denn man kommt so weit ich informiert bin nicht einfach so auf den anderen Rechner (es sei denn es wäre auch ein Server auf den man zugreifen dürfte) um die Datei auszulesen!
oder kommt ein php-Script irgendwie durch den Browser auf den Rechner und kann dort in die Verzeichnisse?
-Grüße-
hi,
Leider bin ich auch noch nicht dahinter gekommen ob, und wenn wie, man durch das Script beim Absenden ermitteln kann von wo (Pfad der hochzuladenen Datei) der Benutzer die ausgewählte Datei hochlädt!
Nein, kann man nicht.
Der Client ist nicht verpflichtet, dir den Originalpfad mitzuteilen.
(und selbst wenn er dies täte, dann erst mit dem Upload - also hättest du die Datei eh schon auf deinem Server verfügbar, dein Ansatz des vom-Client-öffnens wäre also hinfällig bzw. überflüssig.)
Aber selbst wenn er dies getan hätte -
Dann könnte man mit dem ermitteltem Pfad auf die externe Datei (des Benutzers) zugreifen, bzw. sie einlesen, ohne das Sie geuploadet werden müsste!!
Nein, könnte man nicht so ohne weiteres.
Wie du in deiner anderen Antwort richtig aus dem Manual zitiert hast, muss dafür wenigstens ein Protokoll verfügbar sein, welches PHP kennt.
Wenn ich aber ein einfacher WWW-Client bin, und keinen Web- oder FTP-Server betreibe, dann hast du ein solches gar nicht zur Verfügung.
oder kommt ein php-Script irgendwie durch den Browser auf den Rechner und kann dort in die Verzeichnisse?
Das wäre ja absoluter Unfug, in Bezug auf Sicherheit und Privacy.
gruß,
wahsaga
Hallo!
Leider bin ich auch noch nicht dahinter gekommen ob, und wenn wie, man durch das Script beim Absenden ermitteln kann von wo (Pfad der hochzuladenen Datei) der Benutzer die ausgewählte Datei hochlädt!
Gar nicht. Du kannst nur ermittel wo der Server die Datei hingespeichert hat. Wie das geht, steht im Manual.
mfg
frafu
Hallo!
Leider bin ich auch noch nicht dahinter gekommen ob, und wenn wie, man durch das Script beim Absenden ermitteln kann von wo (Pfad der hochzuladenen Datei) der Benutzer die ausgewählte Datei hochlädt!
Gar nicht. Du kannst nur ermittel wo der Server die Datei hingespeichert hat. Wie das geht, steht im Manual.
Das weiß ich schon, danke trotzdem!
P.S. Hättest aber für dumme lieber direkt auf den Befehl verlinkt, sonst suchen die sich tot! file_get_contents
-Grüße-
Hallo!
Das weiß ich schon, danke trotzdem!
P.S. Hättest aber für dumme lieber direkt auf den Befehl verlinkt, sonst suchen die sich tot! file_get_contents
Meiner Ansicht nach wolltest du wissen, wo das File zu finden ist, das hochgeladen wurde. Nicht wie man es weiterverarbeiten kann.
mfg
frafu