is_uploaded_file () всегда возвращает FALSE

Я создал форму для загрузки нескольких файлов.
Я сообщаю здесь только необходимый код этого.

когда я загружаю один или несколько файлов, массив

$_FILES['shopImage']

имеет дату, связанную с одним или несколькими файлами,
и я могу видеть это через var_dump() Я вставил в код PHP здесь ниже
Я могу определить загруженный файл.

однако функция

is_uploaded_file($_FILES['shopImage']['tmp_name'])

всегда возвращает FALSE.

Пожалуйста, вот HTML-код, который генерирует массив $ _FILES:

<form method="POST" action="upload.php" enctype="multipart/form-data">
...
...
...
<div class="pics">
<input type="file" name="shopImage[]">
<input type="file" name="shopImage[]">
<input type="file" name="shopImage[]">
<input type="file" name="shopImage[]">
</div>
...
...
...
<input type="submit" name="submit" value="UPDATE"><input type="reset" value="RESET">
</form>

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

<?
require_once $_SERVER['DOCUMENT_ROOT'].'include/setup.php';

if (!empty($_POST['submit']) and $_POST['submit'] == "UPDATE") {

var_dump($_FILES['shopImage']);
if(is_uploaded_file($_FILES['shopImage']['tmp_name'])){
echo "TRUE";
exit;
} else {
echo "FALSE";
exit;
}
}
?>

А вот и здесь var_dump ()

array(5) {
["name"]=>
array(10) {
[0]=>
string(11) "Logo.png"[1]=>
string(0) ""[2]=>
string(0) ""[3]=>
string(0) ""}
["type"]=>
array(10) {
[0]=>
string(9) "image/png"[1]=>
string(0) ""[2]=>
string(0) ""[3]=>
string(0) ""}
["tmp_name"]=>
array(10) {
[0]=>
string(14) "/tmp/php2TOmvR"[1]=>
string(0) ""[2]=>
string(0) ""[3]=>
string(0) ""}
["error"]=>
array(10) {
[0]=>
int(0)
[1]=>
int(4)
[2]=>
int(4)
[3]=>
int(4)
}
["size"]=>
array(10) {
[0]=>
int(21947)
[1]=>
int(0)
[2]=>
int(0)
[3]=>
int(0)
}
}

ПРИМЕЧАНИЕ: я проверил довольно похожую проблему Вот, но описанные условия не совпадают с моими. Я еще не реализовал move_upload_file() так далее …

Не могли бы вы помочь мне найти решение?

Заранее большое спасибо

1

Решение

Как вы можете видеть из вашего var_dump ваш $_FILES['shopImage']['tmp_name'] является массив. Поэтому вам следует проверять элементы этого массива, а не сам массив. Например:

foreach ($_FILES['shopImage']['tmp_name'] as $tmp_name) {
if (is_uploaded_file($tmp_name)) {
echo 'Yes';
} else {
echo 'No';
}
}
3

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

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

По вопросам рекламы [email protected]