php move_uploaded_file()
Also Teste ich aus der move_uploaded_file() von php-Skript aus der w3schools-website http://www.w3schools.com/php/php_file_upload.asp.
Hier ist mein code.
if ($_FILES["file"]["size"] < 2000000)
{
if ($_FILES["file"]["error"] > 0)
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("/var/www/upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
elseif(move_uploaded_file($_FILES["file"]["tmp_name"], "/var/www/upload/".$fileName))
echo "Stored in: " . "/var/www/upload/".$fileName;
}
}
else
echo "Invalid file";
Das problem ist if(move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/upload/".$fileName))
gibt false zurück, die ganze Zeit, aber es scheint die Datei gespeichert ist, in der tmp
Ordner auf dem server (zum Beispiel: /tmp/php8rrKoW
). Wenn ich die tmp
Ordner die Datei ist nicht da. (Es soll gelöscht werden, nachdem das Skript fertig ausgeführt ist.) Ich sehe auch nicht ein, die /php8rrkoW
Ordner. Ich bin mir nicht sicher, ob es soll dort sein. Ich habe die Erlaubnis sowohl für die tmp
Ordner und /var/www/upload/
zu 777
mit chmod
, aber ich bin mir nicht sicher, ob ich sollte den Besitzer zu apache
. Also ich will wissen, warum die Datei nicht kopiert zu /var/www/upload
und wenn es einen Weg gibt, dies zu testen.
Haben Sie die Option error_reporting(E_ALL) und welche Fehler sind Sie immer?
Versuchen Sie auf Anfrage
index.php
mit <?php file_put_contents('/var/www/upload/test.txt', 'test');
. Sehen Sie irgendwelche Fehler und die Datei erfolgreich erstellt wurde?
InformationsquelleAutor user1352777 | 2012-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein einfaches Bild-upload-Klasse habe ich für eine andere Frage, den anderen Tag, einfach zu bedienen, vielleicht finden Sie es interessant.
InformationsquelleAutor Lawrence Cherone
Es scheint, dass Sie verwenden sollten ./upload/anstelle von /var/www/upload/da Sie sind bereits im Haupt-Verzeichnis der barrierefreien website.
Weitere Informationen finden Sie auch auf http://www.tizag.com/phpT/fileupload.php
oder die API : http://php.net/manual/en/function.move-uploaded-file.php
Lassen Sie mich wissen, wenn das funktioniert
InformationsquelleAutor mlishn
Dem Ziel-Verzeichnis, das Sie wollen, um die Dateien zu verschieben sollte beschreibbar durch den webserver Benutzer. Vergessen Sie auch nicht, dass manche Webserver betrieben innerhalb einer changeroot, so dass ein Teil des Ziel-Pfad kann möglicherweise nicht erforderlich sein. Die PHP-Hilfe doc auch sagt, dass Sie sollten überprüfen, die HTLM-Formular, um sicherzustellen, dass es enctype='multipart/form-data'.
Und schließlich: wo wird $filename definiert?
InformationsquelleAutor Jon Kloske
Ihrem Pfad muss aus '/home/usr-name'
Versuchen Sie, hinzufügen von '/home/Ihr-Benutzername' auf den Anfang von '/var/www/upload' .
Um eine Idee zu bekommen, fügen Sie eine info.php in Ihrem root-Verzeichnis, öffne es in einem browser und suchen Sie unter "Loaded Configuration File".
InformationsquelleAutor Bruce Tong