2016-01-12 3 views
-4

У меня есть сомнение в следующем коде.Кнопка файла с использованием петель

file.php

<form method="post" action="Filesave.php" enctype="multipart/form-data"> 
<?php 
    for($i=0;$i<25;$i++) { 
?> 
    <input type="file" id="f[]" name="f[]"> 
<?php 
    } 
?> 
    <br /> 
    <br /> 
    <input type="submit" name="submit" id="submit" value="Submit"/> 
</form> 

filesave.php

<?php 
    for($i=0;$i<25;$i++) { 
     $image = $_FILES["f"]["name"][$i]; 
     $filepath = $_FILES['f']['tmp_name'][$i]; 
     echo($i." Image Name ".$image." File Path ".$filepath."<br>"); 
    } 
?> 

В приведенном выше коде после того, как 20-й итерации будет отображаться следующее сообщение об ошибке.

Примечание: Undefined смещение: 20 в C: \ WAMP \ WWW \ IMGUpload \ Filesave.php на линии 4 Примечание: Не определено смещение: 20 в C: \ WAMP \ WWW \ IMGUpload \ Filesave.php на линии 5

Пожалуйста, расскажите, как решить эту проблему?

+0

file.php -------- <форма метод = "пост" действие = "Filesave.php" ENCTYPE = "многочастному/форм-данных, Msgstr "

<входной тип = "отправить" имя = "отправить" ID = "отправить" значение = "Отправить" /> Filesave.php ------------ "); } ?> –

+1

Пожалуйста, отредактируйте ваше сообщение своим кодом, а не разместите его как комментарий. – Clay

+0

Вы можете добавить полный код –

ответ

0

Это потому, что вы зацикливаете 26 индексов в $ _FILES ['f'], где дело может быть в том, что вы загрузили только 19 изображений (т.е. 19 индексов). Поскольку изображения, которые могут быть загружены, являются переменными, вам нужно использовать функцию count(), чтобы определить, сколько изображений отправлено для загрузки.

filesave.php

$image_count = count($_FILES['f']['tmp_name']); 
for($i=0;$i<$image_count-1;$i++) { 
    $image = $_FILES["f"]["name"][$i]; 
    $filepath = $_FILES['f']['tmp_name'][$i]; 
    echo($i." Image Name ".$image." File Path ".$filepath."<br>"); 
} 
+0

Загрузка только 20 изображений одновременно. –

+0

Нет, вы можете загрузить столько файлов, сколько хотите. Не забудьте использовать 'count()' для получения количества файлов, загруженных пользователем. –

+0

Я пробовал это. но значение count равно 20. Когда я пытаюсь загрузить 25 изображений. –