Я создал форму для загрузки нескольких файлов.
Я сообщаю здесь только необходимый код этого.
когда я загружаю один или несколько файлов, массив
$_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()
так далее …
Не могли бы вы помочь мне найти решение?
Заранее большое спасибо
Как вы можете видеть из вашего 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';
}
}
Других решений пока нет …