PHP Upload

haloman

Grünschnabel
Hallo,
mein PHP Upload funktioniert nicht. Ich hab schon alles aus dem Skript genommen was irgend wie Probleme machen könnte

Das Formular sieht so aus
HTML:
<form enctype="multipart/form-data" name="week_n" method="post" action="write.php">
      <input id="form" tabindex="11" type="file" name="pic" />
      <input id="form" type="submit" tabindex="13" name="Submit" value="Post" />
</form>

PHP:
<? error_reporting(E_ALL); 
ini_set('display_errors', TRUE);
$file = $_POST["pic"];
$dir = "/var/www/web2/html/test/";
move_uploaded_file($pic,$dir);
echo '<xmp>'; 
print_r($_FILES); 
echo'</xmp>';
 ?>
soweit mein code....

Augegeben wird immer:
Code:
Notice: Undefined index: pic in /var/www/web2/html/test/write.php on line 5
/var/www/web2/html/test/
Warning: move_uploaded_file(/var/www/web2/html/test/): failed to open stream: Is a directory in /var/www/web2/html/test/write.php on line 10

Warning: move_uploaded_file(): Unable to move '/var/www/web2/phptmp/phpqgyWiF' to '/var/www/web2/html//test/' in /var/www/web2/html/test/write.php on line 10

Array
(
    [pic] => Array
        (
            [name] => feuer.gif
            [type] => image/gif
            [tmp_name] => /var/www/web2/phptmp/phpqgyWiF
            [error] => 0
            [size] => 1644
        )

)

Sämtlich CHMOD stehen auf 777. Sogar die der php datei.
In der PHP.ini stehen file_uploads auf on.

Die Datei kommt ja auch an, kann man ja auch am Array sehen. Aber ich versteh nicht wieso php sie nicht verarbeitet

Vielen Dank für eure Hilfe schon mal im vorraus
 
Du arbeitest zuerst mit $_POST["pic"] und gibst dann spaeter $_FILES aus um zu testen ob was kommt.
Da sollte Dir der Fehler doch eigentlich auffallen?

Ersetz mal $_POST["pic"] durch $_FILES["pic"].
Und dann sollten natuerlich noch $pic gesetzt werden und der Dateiname an $dir angehaengt werden.
 
also quasi so:
PHP:
<?
error_reporting(E_ALL); 
ini_set('display_errors', TRUE);

$file = $_FILES["pic"];
$dir = "/var/www/web2/html/test/01"; // habs auch mit 01.jpg versucht klappt nicht

move_uploaded_file($file,$dir);

echo '<xmp>'; 
print_r($_FILES); 
echo'</xmp>';

?>

klappt aber nicht

Meldung
Code:
Notice: Array to string conversion in /var/www/web2/html/test/write.php on line 8

Array
(
    [pic] => Array
        (
            [name] => feuer.gif
            [type] => image/gif
            [tmp_name] => /var/www/web2/phptmp/phpHAywl6
            [error] => 0
            [size] => 1644
        )

)
 
Zuletzt bearbeitet:
Hallo!

Was versuchst Du da eigentlich?
Du musst die temporäre Datei verschieben.
Versuche es mal so:
PHP:
<?php
error_reporting(E_ALL); 
ini_set('display_errors', TRUE); 
 
$temp_file = $_FILES["pic"]["tmp_name"]; 
$file_name = $_FILES["pic"]["name"]; 
$dir = "/var/www/web2/html/test/";
 
move_uploaded_file($temp_file,$dir.$file_name); 
 
echo '<xmp>'; 
print_r($_FILES); 
echo'</xmp>'; 
?>
So wird der original Dateiname genommen.
Wenn Du den Dateinamen selbst bestimmen willst, ersetzt Du $_FILES["pic"]["name"] gegen z.b. blablub.jpg.

Gruss Dr Dau
 
Zurück