2015-09-10 3 views
0

У меня есть форма:Multiple входной файл в одной форме

<form method="post" enctype="multipart/form-data" action="edit_kategori.php"> 
    <input type="file" name="icon-main" id="icon-main"> 
    <input type="file" name="icon-hover" id="icon-hover"> 
<form> 

Я хочу, чтобы загрузить два изображения из двух входных файлов, но только последний файл я Выбирается что закачанный. и вот мой php:

$dirMain = $_FILES['icon-main']['tmp_name']; 
$dirHover = $_FILES['icon-hover']['tmp_name']; 

//main icon 
$tempMain = explode(".", $_FILES['icon-main']['name']); 
$newMain = round(microtime(true)) . '.' . end($tempMain); 

$iconMain = $folder . basename($newMain); 

//hover icon 
$tempHover = explode(".", $_FILES['icon-hover']['name']); 
$newHover = round(microtime(true)) . '.' . end($tempHover); 

$iconHover = $folder . basename($newHover); 

if (!empty($dirMain)&&!empty($dirHover)) { 
     $dir[] = $dirMain; 
     $dir[] = $dirHover; 

     $icon[] = $iconMain; 
     $icon[] = $iconHover; 

     for ($i=0; $i <= 1; $i++) { 
      move_uploaded_file($dir[$i] , $icon[$i]); 
     } 

    } 

Это потому, что «tmp_name» может хранить только один файл? Спасибо за помощь :)

+0

может быть полезно для 'vardump' каждой части, чтобы вы знали, какая часть не работает должным образом. – Andrew

+0

вы можете попытаться получить форму возвращаемого значения' move_uploaded_file', чтобы определить, выполнено ли действие или нет. – Andrew

ответ

0

Просто небольшая ошибка, петля через <= 1

for ($i=0; $i <= 1; $i++) { 
      move_uploaded_file($dir[$i] , $icon[$i]); 
     } 

Я думаю, хранящей $_FILES['yourvar']['tmp_name'] является причиной проблемы. Я попробовал это оба пути, и это могло бы полезно для вас разница:

Метод 1: (рабочий)

move_uploaded_file($_FILES['icon-main']['tmp_name'], $_FILES['icon-main']['name']); 
move_uploaded_file($_FILES['icon-hover']['tmp_name'], $_FILES['icon-hover']['name']); 

Способ 2: (не работает)

$d = $_FILES['icon-main']['tmp_name']; 
$k = $_FILES['icon-hover']['tmp_name']; 
move_uploaded_file($d, $_FILES['icon-main']['name']); 
move_uploaded_file($k, $_FILES['icon-hover']['name']); 
+0

спасибо за ответ, ve изменил <= 1, но он did'nt работает, только последний файл может быть загружен ... –

0

Я просто нахожу путь, я перемещаю файл вручную, используя, если, а не петли ...

$target = "../category/"; 
$dir = $target . basename($_FILES['icon-main']['name']); 

if(move_uploaded_file($_FILES['icon-main']['tmp_name'], $dir)) { 
    echo "<br>"; 
    echo $dir; 
} else { 
    echo "Fail"; 
}; 


$dir = $target . basename($_FILES['icon-hover']['name']); 

if(move_uploaded_file($_FILES['icon-hover']['tmp_name'], $dir)) { 

    echo "<br>"; 
    echo $dir; 
} else { 
    echo "Fail"; 
}; 
Смежные вопросы