Wie kann ich das Debuggen von Problemen mit move_uploaded_file?
Ich habe eine form, wie
<form action="send.php" method="post" enctype="multipart/form-data">
<div>
<label for="subject">Subject</label>
<input type="text" name="subject" />
</div>
<div>
<label for="image">Image</label>
<input type="file" name="image" />
</div>
<input type="submit" value="Send" />
</form>
PHP wie
echo '<pre>'; print_r($_FILES); echo '</pre>';
if (move_uploaded_file($_FILES['image']['tmp_name'], 'images/' . $_FILES['image']['name'])) {
echo 'ok';
} else {
echo 'error!';
};
Ich immer error
die print_r sieht aus wie
Array
(
[image] => Array
(
[name] => Untitled-1.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpprWdjN
[error] => 0
[size] => 61768
)
)
Meine Vermutung wäre Sie nicht über die Berechtigung zum schreiben
Stimmen. oder Sie haben nicht das Verzeichnis mit dem Namen 'Bilder'.
images/
Ordner. Oder, dass Untitled-1.jpg
bereits vorhanden ist, und Sie haben nicht die Berechtigung zu überschreiben.Stimmen. oder Sie haben nicht das Verzeichnis mit dem Namen 'Bilder'.
InformationsquelleAutor JM at Work | 2011-03-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktivieren error reporting, dann sollten Sie die Fehler ausgelöst, indem
move_uploaded_file
sagt Ihnen, was falsch ist.InformationsquelleAutor deceze
Ihre $_FILES sieht-Datei, error=0 bedeutet, dass der upload erfolgreich abgeschlossen. Wahrscheinlich ist das ein berechtigungsfehler. Sie können versuchen, etwas zu tun wie:
Beachten Sie jedoch, dass Sie bei der Verwendung einer Benutzer-versehen mit dem Namen, also wenn jemand hochlädt "pwn_my_server.php" das Skript schreiben, um die Bilder Verzeichnis, und dann können Sie einfach besuchen
yoursite.com/images/pwn_my_server.php
und übernehmen Sie die Kontrolle über Ihre Website.Generell ist es NIE eine gute Idee, zu Vertrauen, etwas in der $_FILES-array, oder verwenden Sie es direkt, da die Gesamtheit der Inhalte sind unter remote-Benutzer die Kontrolle. Die einzige Sache, die erstellt, indem der server den Fehler-code und tmp_name. Der rest ist potenziell bösartigen.
Wenn Sie das Kontrollkästchen für
is_writeable('images/' . $_FILES['image']['name'])
bevor Sie die Datei hochladen, es wird immer false zurückgeben.InformationsquelleAutor Marc B
vielleicht ist das problem 'image/' - Ordner, können Sie den absoluten Pfad hier und stellen Sie sicher, dass der Pfad beschreibbar ist, dann haben Sie einen Versuch.
InformationsquelleAutor Michael Bai
Verwenden Sie den folgenden code:
1. erstellen Sie das Verzeichnis mit dem Namen 'uploads'
2. speichern Sie die Datei mit .php-Erweiterung
nun führen Sie den code.
🙂
move_uploaded_file
gelungen...? Gut, das ist one Art der Befestigung eine Fehlermeldung... :-/es bekam.
PHP ist sehr eigenen "on error resume next". Fehler? was Fehler.
InformationsquelleAutor Sujeet