WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   php - problem mit fileupload von windowssytem auf linuxserver (http://www.wcm.at/forum/showthread.php?t=39346)

RaistlinMajere 13.12.2001 02:05

php - problem mit fileupload von windowssytem auf linuxserver
 
folgendes problem:

ich habe einen fileupload auf einen linuxserver. mit der funktion

$bildname = basename($bildpfad);

extrahiere ich den dateinamen vom gesamtpfad.

auf meinem windowssystem, wo ich teste, funzt alles bestens, der pfad wird übernommen, der upload auf den linuxserver paßt auch.

nur wenn ich das ganze vom linuxserver aus, d.h. von dort den fileupload mit meinem system als quelle, machen will, gibts probleme.

Warning: error opening D:\\apache\\htdocs\\poco\\shopkeeper\\pix\\artikel \\ahoi.gif in /home/po006vmo/www/home/shopkeeper/create.php on line 103

es kann also das lokale file nicht gelesen werden.

die zeile 103 sieht bei mir so aus:

ftp_put($ftp, $bildname, $bildpfad, FTP_BINARY);

es wird offensichtlich $bildpfad, also der string, der aus dem file-feld stammt, für den upload nicht angenommen.
ich habe mir testhalber die variablen $bildpfad und $bildname ausgeben lassen, auf dem windowssystem werden sie korrekt ausgegeben, funzt ja dort auch alles bestens, nur auf dem linuxserver sehen sie beide gleich aus, nämlich so:

D:\\apache\\htdocs\\poco\\shopkeeper\\pix\\artikel \\ahoi.gif

was darauf hindeutet, daß die pfadangabe als string zwar sehr wohl übernommen wird, aber nicht als pfad akzeptiert wird, sonst würde nämlich basename($bildpfad) korrekt funktionieren und den dateinamen aus dem obigen pfad extrahieren.

an den doppelten "\\" liegts wohl nicht, denn 1. gehts ja unter win und 2. hat ein stripslashes($bildpfad) vor dem ftp-upload auch nix gebracht, dann hab ich dieselbe fehlermeldung nur mit einem "\" jeweils.

vielen dank für jede hilfe, ich bin echt am narrischwerden und das teil muß bald fertig sein. :mad:

Sloter 13.12.2001 07:23

Safemod "off" in der php.ini ?

Sloter

ibisxi 13.12.2001 09:36

dir-seperators
 
Hey Andy...

Linux verwendet / (Slashes) um die dirs von einander zu trennen. Kann es sein, dass das der fehler war/ist? Ansonsten setzen wir uns wohl am besten morgen nachmittag zusammen hin und schaun uns das an...
(und danach gehts zu ursi :-)

grüaßle!
Tobias

RaistlinMajere 13.12.2001 10:13

@sloter
 
ja, ist off. was heißt das, nebenbei bemerkt?

Sloter 13.12.2001 10:18

Safemod (geschützter betrieb) ist eine kleine Sicherheitseinrichtung.
Ist Safemod on, können zB keine Datein auf den Server mit PHP raufgeladen werden.

Beim raufladen von Datein wird das Temp-verzeichnis verwendet.
Hast du Zugriff auf den Linuxserver?


Sloter

RaistlinMajere 13.12.2001 10:55

zugriff habe ich, ich kann über ein ftp-prog oder wenn ich das skript testhalber von meinem windowsserver aus ausführe, auch auf den linuxserver raufladen.

es liegt übrigens nicht daran, daß der linuxserver die pfadangabe nicht als solche erkennt, weil "\" darin vorkommen, ich hab den string so aufbereitet, daß die "\" durch "/" ersetzt werden, jetzt lautet die meldung halt

Warning: error opening D:/apache/htdocs/poco/shopkeeper/pix/artikel/ahoi.gif in /home/po006vmo/www/home/shopkeeper/create.php on line 106

:(

welches temp-verzeichnis, das lokale?

_m3 13.12.2001 11:02

Bin kein PHP-Guru, aber "D:/apache/..." ist IMHO keine gültige Pfadangabe für Linux, da es die Laufwerksbuchstabenmetapher nicht gibt.

Ich verteh aber auch das Problem nicht so ganz.
Du willst einen File-Upload über einen Browser auf einen Webserver relaisieren? Und Du verwendest dafür ein PHP-Script am Server?

RaistlinMajere 13.12.2001 11:13

@_m3
 
genau, es soll über ein auf dem server liegenden script auf diesen server ein lokales file upgeloadet werden. nur das lokale file kann nicht für den upload geöffnet werden und ich frage mich warum. daß es nicht an den pfadunterschieden zwischen windows und linux liegt, ist mir mittlerweile schon klar, aber wo sonst kann da ein fehler sein? v.a. warum wird das lokale file gefunden, wenn ich das script von meinem server aus ausführe und auf den andern server rauflade?

Sloter 13.12.2001 11:51

Vielleicht hilft der Link
http://www.php4-forum.de/beispiele/anwendung_upload.htm

Vielleicht Probleme mit den Dateirechten am Winrechner?

Vielleicht die FTP-Funktion in PHP am Linuxserver nicht compiled?

Vielleicht die Datei zu groß? (wird in der php.ini geregelt

Sloter

RaistlinMajere 13.12.2001 12:20

@sloter
 
thx, aber irgendwie ist das, was im link steht, nicht wirklich eine upload-, sondern lediglich eine copy-beschreibung, warum das unter "upload" gehandelt wird, verstehe ich nicht ganz.

rechteproblem ist es auch keins, hab grad von nem anderen kübel aus übers web betroffene datei geöffnet.

und zu groß ist die datei nicht, denn die standarteinstellung ist ja 2mb und das paßt somit.

ob die funktion gar nicht compiled wird... kann sein, aber ich kann mir das bei inode schwerlich vorstellen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:13 Uhr.

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