Загрузка файлов не работает, что не так с этим кодом? - PullRequest
0 голосов
/ 08 января 2010

Это код PHP, используемый для загрузки:

$upload = "uploads/";
$upload = $upload . basename($_FILES['bgimage']['name']);

if (move_uploaded_file($_FILES['bgimage']['tmp_name'], $upload)) {

    echo "The file has been uploaded successfully.";

} else { echo "Error"; }

Когда я тестирую скрипт, он говорит: «Файл успешно загружен». но когда я проверяю FTP-сервер, он на самом деле не ...

Кроме того, если вам нужно знать, вот HTML-коды:

Форма тега:

<form name="profilestyle" action="account.php?action=profiletheme" method="post" enctype="multipart/form-data">

Метка ввода:

<input type="file" name="bgimage" />

Дополнительная информация: Да, я вспомнил CHMod каталог загрузок

Ответы [ 3 ]

1 голос
/ 08 января 2010

Вам также необходимо проверить $_FILES['bgimage']['error'], чтобы убедиться, что оно равно UPLOAD_ERR_OK и не является кодом ошибки.

1 голос
/ 08 января 2010

Странно, код выглядит хорошо, насколько я вижу.

Можете ли вы использовать file_exists(), чтобы проверить, существует ли файл, но, возможно, не виден вашему пользователю FTP?

if (move_uploaded_file($_FILES['bgimage']['tmp_name'], $upload)) {

echo "The file '$upload' has been uploaded successfully.";
if (file_exists($upload)) echo "And it exists! It is ".filesize($upload)." bytes big.";
 else echo "But it doesn't exist.";

} else { echo "Error"; }
0 голосов
/ 08 января 2010

Пожалуйста, попробуйте следующий тестовый код

<code>$upload = "uploads/";
$upload = $upload . basename($_FILES['bgimage']['name']);

sprintf('<pre>Debug: moving file from %s to %s
», $ _FILES [ 'bgimage'] [ 'tmp_name'], $ загрузки ); if (move_uploaded_file ($ _ FILES ['bgimage'] ['tmp_name'], $ upload)) { echo "Файл успешно загружен."; Sprintf ( '
Debug: realpath=%s, filesize=%d
', Realpath ($ загрузка), размер файла ($ загрузка) ); } еще { эхо "Ошибка"; }

и особенно следите за выводом realpath = xyz.

...