File upload

sers!

habe ein problem mitm fileupload.

ich versuche die per formular hochgeladene datei halt in einen bestimmten ordner zu packen (move_uploaded_file)

ich versuche dies mittels diesem scriptchen:

<?php $uploaddir = "/bilder/";<br />
print "

    ";
    if (move\_uploaded\_file($\_FILES['userfile']['tmp\_name'], $uploaddir . $\_FILES['userfile']['name'])) {
     print "Datei erfolgreich hochgeladen! \n";
     print\_r($\_FILES);
    } else {
     print "Fehler aufgetreten! Gehen sie zurück und versuchen sie es erneut.";
     print\_r($\_FILES);
     print\_r($\_FILES['userfile']['error']);
    }
    
    ?\>




lokal hab ich folgende fehlermeldung:
  
_Warning: move\_uploaded\_file(/bilder/testbild.jpg): failed to open stream: No such file or directory in c:\...\fertig.php on line 8_  

dann hab ichs mal auf meinem webserver versucht, da bekam ich dies:
  
_Warning: move\_uploaded\_file(): SAFE MODE Restriction in effect. The script whose uid is 32019 is not allowed to access / owned by uid 0 in /.../fertig.php on line 8_  

das 
print\_r($\_FILES['userfile']['error']);
gibt allerdings immer 0 zurück; also kein fehler...

was ist da falsch!?

mfg
Geisterkarle

ps: die ... sind natürlich nich drin; aber ihr braucht ja nich meine dateistruktur kennen :wink:
der ordner fürs hochladen (/bilder/) ist übrigens natürlich vorhanden!

$uploaddir = „/bilder/“;

ich wäre da ziemlich sicher, das dieses Directory nicht auf deinem Webserver existiert :wink:

Versuch es mal, wenn du bei $uploaddir den absoluten Pfad eingibst.

Gruß

Marian

lokal hab ich folgende fehlermeldung:

Warning: move_uploaded_file(/bilder/testbild.jpg): failed to
open stream: No such file or directory in c:…\fertig.php on
line 8

dann hab ichs mal auf meinem webserver versucht, da bekam ich
dies:

Warning: move_uploaded_file(): SAFE MODE Restriction in
effect. The script whose uid is 32019 is not allowed to
access / owned by uid 0 in /…/fertig.php on line 8

was ist da falsch!?

der ordner fürs hochladen (/bilder/) ist übrigens natürlich
vorhanden!

den ordner „/bilder“ gibt es auf deinem windows system bestimmt genauso wenig, wie auf dem linuxsystem. auf dem windows wird der pfad wohl mit „C:“ anfangen muessen, und auf dem linux wo ganz anders, weil /ist das rootverzeichnis - und da duerfte eigentlich niemand den php prozess hinlassen.

zumal, wenn dir der windowsrechner schon gesagt hat, dass es das verzeichniss nciht gibt, dann wird er wohl recht haben.

bring deine pfade mit phpinfo() in erfahrung und/oder referenziere deine pfad relativ.

den ordner „/bilder“ gibt es auf deinem windows system
bestimmt genauso wenig, wie auf dem linuxsystem. auf dem
windows wird der pfad wohl mit „C:“ anfangen muessen, und auf
dem linux wo ganz anders, weil /ist das rootverzeichnis - und
da duerfte eigentlich niemand den php prozess hinlassen.

ahja, ganz vergessen :wink:
die windows user halt *g*

habe jetzt aber dennoch noch 2 probleme:

  1. ich frage per fopen() ab, ob die datei, die ich hochlade schon exisitiert.
    allerdings schmeisst er bei nichtvorhandensein nicht nur false zurück, sondern gibt meinem browser auch noch eine fehlermeldung
    Warning: fopen(): failed to open stream: No such file or directory … (das des nich da is, is ja klar, des frag ich ja ab…)

kann mer des abschalten oder so?

zum anderen funktioniert das ganze nur lokal bei mir!
aufm server wirft er folgendes:
Warning: fopen(): Unable to access …
Warning: fopen(): failed to open stream: Permission denied in …
Warning: move_uploaded_file(): failed to open stream: Permission denied in …

kann das mit safe_mode zusammenhängen?

mfg
Geisterkarle

  1. ich frage per fopen() ab, ob die datei, die ich hochlade
    schon exisitiert.

das macht man ja nicht mit fopen() sondern mit file_exists()

Wenn’s denn unbeding fopen sein muss, kannst Du ein @-Zeichen davorstellen, um die Fehlermeldung zu unterdrücken.

also:
$file = @fopen(„datei.txt“,„r“);

Warning: fopen(): failed to open stream: Permission denied in

„permission denied“ sagt doch wohl schon alles. Du hast dann kein Zugriffsrecht für die gewünschte Aktion (lesen oder schreiben). Setz die Rechte auf dem Webserver richtig, dann klappt es.

Gruß

Marian

Hallo,

es ist auch möglich, dass die Rechte des Orderns /bilder/ nicht
richtig gesetzt sind!

Viele Grüsse,

Marcus