WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   php fileupload, zum x-ten (http://www.wcm.at/forum/showthread.php?t=48956)

RaistlinMajere 08.03.2002 17:02

php fileupload, zum x-ten
 
habs mit hilfe dieser anleitung versucht, nur bekomme ich wenn ich dann am server das script ausführe, die meldung

Warning: Unable to open 'D:\Programme\apache\htdocs\poco\shop\shopkeeper\p ix\artikel\all\artikel.jpg' for reading: No such file or directory in /home/po006vmo/www/home/shop/shopkeeper/create.php on line 101

offensichtlich wird damit gerechnet, daß der pfad sich auf dem server befindet, aber der copybefehl sollte doch von der eigenen hd ein file uploaden können! und dort existiert ja der pfad auch! der zielpfad existiert ebenfalls auf dem server.
was kann der grund für diese meldung sein?

_m3 08.03.2002 21:29

In der Variablen $bild hast Du den temporären Dateinamen, unter dem Du das hochgeladene Bild auf dem Server findest. Der Variablenname ergibt sich aus dem Namen des input-Form-Elements:
<input type='file' name='bild'>

In $bild_name findet sich DER KOMPLETTE NAME INKL. DES PFADES, unter dem die Datei auf dem Client abgelegt war.
Du musst Dir daher erst den richtigen Filenamen aus $bild_name heraus-regexen, und Dir dann einen korrekten Zielpfad für den Copy-Befehl bauen. $bild_name direkt als Ziel bei copy anzugeben wird nicht funktionieren.

Klar?

RaistlinMajere 08.03.2002 21:43

das ist mir schon klar, sonst würds ja auf meinem eigenen server, wo ich das script getestet habe, nicht gehen, wenns den zielPFAD nicht gäbe, an den ich dann den dateinamen anfüge. von dem her sollte es also passen, mein copybefehl schaut ca. so aus:

copy($pfad_auf_client_von_inputfeld_inkl_dateiname , $pfad_auf_server . $nur_dateiname);

müßte doch eigentlich passen, oder?

_m3 08.03.2002 21:46

Jup :) - nur in deinem ersten posting sah es so aus, als würdest Du die Pfade vom client und vom server mischen.

RaistlinMajere 08.03.2002 22:01

nein, mach ich nicht.
bin mittlerweile draufgekommen, daß die extraktion des dateinamens aus dem pfad heraus nicht funktioniert, allerdings nur am anderen server (linux), auf meinem eigenen (windows) schon, nur warum das so ist, verstehe ich nicht, ich mach das mit

$nur_dateiname = basename($pfad_auf_client_von_inputfeld_inkl_datei name);

könnte aber damit zusammenhängen, daß linux ein "\" nicht als trennzeichen akzeptiert und basename nicht gescheit genug ist, mit "/" und "\" umzugehen.

RaistlinMajere 08.03.2002 22:30

hab mir grad bei php.net die beschreibung von basename angesehen, linux versteht tatsächlich nur "/" als trennzeichen. hab also händisch die extrahierung vorgenommen, und zwar mit

$dateiname = strrchr($pfad_inkl_dateiname, "\");

dann habe ich sowas wie "\datei.jpg"

$nur_dateiname = substr($dateiname, 1);

macht daraus ein "datei.jpg"

somit ist die extraktion komplett, nur leider löst das mein problem nicht, das war zwar ein bug, aber jetzt bekomme ich immer noch die meldung

Warning: Unable to open 'D:\Programme\apache\htdocs\poco\shop\shopkeeper\p ix\artikel\all\artikel.jpg' for reading: No such file or directory in /home/po006vmo/www/home/shop/shopkeeper/create.php on line 106

und das, obwohl der copybefehl mit den richtigen argumenten versorgt wurde. ich hab den befehl doch nicht falsch verstanden, es wird eine LOKALE datei auf einen anderen server kopiert, oder?

käptn 08.03.2002 23:10

bitte nehmt es einem php-nixwisser net übel wenn er helfen will, aber:

könnte es helfen, wenn du in

$pfad_auf_client_von_inputfeld_inkl_dateiname

alle "\" mit "/" auswechselt?

gruss

RaistlinMajere 08.03.2002 23:50

das wäre vllt. eine möglichkeit, aber ich hätte doch gern eine lösung, die sowohl von linux- wie auch von windowsservern läuft.

allwissende Müllhalde 09.03.2002 00:04

Versuchs zur Abwechslung mal damit:
http://www.zachwhite.com/
das hat bei mir einwandfrei geklappt.
Vielleicht kommst ja über den Umweg ein anderes Skript auszuprobieren hinter den Fehler beim ersten.

Ps: Es klappt zumindest vom Desktop zum Linux-Server im Internet.


allwissende Müllhalde 09.03.2002 03:39

Also bei mir funktioniert dein Skript vom phpforum auch.
Hab ich gerade probiert, und zwar ohne irgendwelche Umstände/Anpassungen.
Das Einzige was mir dazu einfällt wäre evtl. daß du das Verzeichniß
für die Bilder am Server vielleicht nicht chmod 777 hast so wie in der Anleitung gefordert.
Wobei die Bilder ins selbe Verz. abgelegt werden in dem auch das Skript liegt.
Und, wie kann das Skript einen Fehler in Line 101 haben, es hat doch original nur 37 Zeilen ?


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag