веб-сервисы amazon — переместить загруженный файл с оценкой в ​​false

У меня есть настройка php-файла для загрузки изображений на сервер Amazon через AWS. Я пришел к сообщению об ошибке, которое странным образом отображается на моем сервере Prod (сервер Amazon), но не на моем сервере Dev (просто обычный сервер PHP). Сервер Amazon ранее выдавал ошибки, когда что-то не структурировано именно так, как он хочет. Например, если у тега есть Href /home это приведет к ошибке на странице, если я не изменю тег на /home/,

Во всяком случае, я сузился в моем скрипте PHP, где лежит ошибка и моя функция PHP move_uploaded_fileоценивает значение false и останавливает мой файл с начала загрузки на Amazon s3 (на данном этапе файл находится на сервере, на котором размещен сайт, но еще не на s3). Вот мое утверждение if с некоторыми объявленными выше переменными, которые должны иметь значение true:

$target_dir = "../uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],$target_file)) {
//upload to s3
} else {
//error
}

Я вставил следующий код над оператором if, чтобы увидеть, что он выплевывал, и вот что он оценил в комментариях под ним:

echo json_encode($target_file);
//     "..\/uploads\/Grad.jpeg"
echo $_FILES["fileToUpload"]["tmp_name"];
//    /tmp/phpQA1667

echo json_encode(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],$target_file));
//    false

Я не эксперт в области php и, похоже, не могу определить, почему он оценивается как ложный. Кто-нибудь может увидеть, где я ошибся?

0

Решение

move_uploaded_file возвращает false в двух случаях:

Если имя файла не является допустимым загружаемым файлом, никаких действий не произойдет, и move_uploaded_file () вернет FALSE.

Если имя файла является допустимым загружаемым файлом, но не может быть перемещено по какой-либо причине, никаких действий не произойдет, и move_uploaded_file () вернет FALSE. Дополнительно будет выдано предупреждение.

В любом случае, вы должны получить ошибку обратно в свой суперглобальный $ _FILES.

Сделайте print_r ($ _ FILES) и посмотрите на любые сообщения об ошибках, которые он вам дает, и на вопрос, заполнен ли массив.

Как только вы обнаружите эту ошибку, вам будет легко определить точную причину проблемы.

Полный список ошибок можно найти на http://php.net/manual/en/features.file-upload.errors.php

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector