2017-01-26 5 views
1

Я пытаюсь перечислить все имена файлов изображений, загруженных через форму, чтобы отправить их по электронной почте.

fileupload.html:

<form method="post" action="upload.php" enctype="multipart/form-data" id="upload" > 
<input type="file" name="filesupl[]" multiple id="files" /> 
<input type="submit" name="UploadBtn" value="Upload" class="formtext" id="UploadBtn"> 
</form> 

upload.php:

$art_file = $_FILES['filesupl']; 
$filecounter = 1; 
$count = 0; 
foreach ($art_file as $i => $art_inner){ 
        echo $filecounter . ") " . $art_file[$i]['name'] . "<br />"; $filecounter++; 
     } 
if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_FILES['filesupl'])) 
    { 
     $extension = pathinfo($_FILES['filesupl']['name'], PATHINFO_EXTENSION); 

     // Upload files 
     // loop all files 
     foreach ($_FILES['filesupl']['name'] as $i => $name) 
     { 
      // if file not uploaded then skip it 
      if (!is_uploaded_file($_FILES['filesupl']['tmp_name'][$i])) 
       continue; 

      // skip large files 
      if ($_FILES['filesupl']['size'][$i] >= $max_size) 
       continue; 

      // skip unprotected files 
      if(!in_array(pathinfo($name, PATHINFO_EXTENSION), $extensions)) 
       continue; 

      // now we can move uploaded files 
      if(move_uploaded_file($_FILES["filesupl"]["tmp_name"][$i], $dir . $name)) 
       $count++; 
     } 

    } 

echo json_encode(array('count' => $count)); 

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

+0

его нормальный массив, в чем проблема? – nogad

+0

Вы пытаетесь определить расширение слишком рано. '$ _FILES ['filesupl'] ['name']' - массив. – ShiraNai7

+0

Я пытаюсь вывести имена файлов по электронной почте, используя foreach, но у меня возникла проблема с доступом к этой переменной для каждого файла, загруженного из вложенного массива. Каждый раз, когда код выполняется, я получаю либо пустой результат, либо слово «Массив» 5 раз. –

ответ

0

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

Если ваша единственная цель состоит в том, чтобы получить все имена файлов загруженных файлов, то ваш код должен быть просто как это:

foreach($_FILES['filesupl']['name'] as $name){ 
    // echo $name . '<br />'; 
} 

Теперь, если вы хотите, чтобы реорганизовать свой код и сделать его работу - использовать for цикл вроде этого:

$count = count($_FILES['filesupl']['name']); 
for($i = 0; $i < $count; ++$i){ 
    // if file not uploaded then skip it 
    if (!is_uploaded_file($_FILES['filesupl']['tmp_name'][$i])) 
     continue; 

    // skip large files 
    if ($_FILES['filesupl']['size'][$i] >= $max_size) 
     continue; 

    // get file extension 
    $extension = pathinfo($_FILES['filesupl']['name'][$i], PATHINFO_EXTENSION); 

    // skip unprotected files 
    if(!in_array($extension, $extensions)) 
     continue; 

    // now we can move uploaded files 
    if(move_uploaded_file($_FILES["filesupl"]["tmp_name"][$i], $dir . $_FILES['filesupl']['name'][$i])){ 
     // file has been uploaded 
    } 
} 

echo json_encode(array('count' => $count)); 
+0

Благодарим за предложение! Я реализовал вторую предложенную часть. К сожалению, я все еще получаю пустое значение, когда ожидаю получить имя файла (используя foreach в соответствии с вашим предложением). –

+0

@CharlieMarrero Где в цикле 'for' вы пытаетесь получить имя файла и как? Вставьте свой код на [pastebin.com] (http://pastebin.com/index.php) и дайте мне ссылку. –

+0

Rajdeep Paul, вот ссылка pastebin в область, где я хочу вывести имена файлов: http://pastebin.com/GsnCFqBc (это часть страницы upload.php, сразу после загрузки файлов) –

 Смежные вопросы

  • Нет связанных вопросов^_^