Это мой первый попыток загрузить файл через PHP.PHP basic upload file script
Вот мой HTML:
<form role="form" action="api/upload.php" id="uploadForm" method="post" enctype="multipart/form-data">
<input id="fileToUpload" name="fileToUpload" type="file" class="file" />
<button type="submit" name="submit" id="submit">Upload</button>
</form>
Теперь здесь PHP скрипт в ссылке "апи/upload.php":
<?php
$target_dir = "files\\";
if(isset($_POST["submit"])) {
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
}
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo $uploadOk . "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["name"], $target_file)) {
echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else{
echo "Sorry, there was an error uploading your file.";
}
}
?>
Это может быть логическая ошибка. Я не уверен. Несмотря на это, я продолжаю получать сообщение «Извините, произошла ошибка при загрузке вашего файла».
Когда я эхо из $ uploadOk, остается равным 1.
Может кто-то пожалуйста, определить свою ошибку и помочь мне исправить это? Я просто пытаюсь сделать простую загрузку файла.
Заранее спасибо.
Ошибка операции 'move_uploaded_file()'. Каковы значения времени выполнения аргументов для этой функции? Существует ли целевой каталог? Может ли процесс PHP писать на него? – David
Ваши сообщения об ошибках НЕПРАВИЛЬНЫЕ. ваше фактическое сообщение должно быть «ваш файл был загружен, но возникла проблема с его перемещением». что означает, что вы должны исследовать ПОЧЕМУ вызов переезда не удался. И обратите внимание, что ваша полная проверка uplaod также нуждается в работе. Вы просто предполагаете, что загрузка никогда не прерывается. В аргументе $ _FILES есть параметр '['error']' '. проверка данных в $ _FILES не означает, что загрузка выполнена успешно. Неудачные загрузки будут STILL заполнять $ _FILES. но если '['error']' равно 0 (aka UPLOAD_ERR_OK), вы не можете TRUST любую другую информацию $ _FILES. –
Форма находится на главной странице. PHP-скрипт находится в папке. У меня есть другая папка под названием «файлы». –