Как передать входной файл во входной файл несколько? - PullRequest
0 голосов
/ 18 января 2019

У меня есть файл, в который клиент добавляет изображение, и через DOM создается элемент img, проблема в том, что у меня есть только один файл, а затем с помощью кнопки отправки я хочу отправить все выбранные изображения один за другим в файл. PHP и загрузить их на сервер, есть ли способ поместить эти файлы в несколько входных файлов и просто отправить несколько входов? или какой самый оптимальный способ?

Ответы [ 2 ]

0 голосов
/ 18 января 2019

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


Сохраните этот код в файле с именем upload.html:

<!DOCTYPE HTML>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>*Upload Test*</title>
  </head>
  <body>
    <form action="up.php" method="post" multipart="" enctype="multipart/form-data">
      <input type="file" name="img[]" multiple accept=".jpg,.jpeg,.png" onchange="submit()">
      <input type="submit">
    </form>
  </body>
</html>

Сохраните этот код в файле с именем up.php:

<?php 
  $img=$_FILES['img'];
  if(!empty($img)) {
    $img_desc=reArrayFiles($img); $cnt=0;
    foreach($img_desc as $val) {
      $newname=$val['name'];
      echo $newname.' ('.$val['type'].') : ';

      if(file_exists('./uploads/'.$newname)){
        echo '<b>Image already exists</b><br>';
      }else{
        move_uploaded_file($val['tmp_name'],'./uploads/'.$newname);
        if($val['error']==0){
          $cnt++;
          echo 'Uploaded!<br>';
        }else{
          echo '<b>Error</b><br>';
        }
      }
    }
    echo '<hr>Uploaded '.$cnt.' images.';
  }

  function reArrayFiles($file) {
    $file_ary=array();
    $file_count=count($file['name']);
    $file_key=array_keys($file);
    for($i=0;$i<$file_count;$i++) {
      foreach($file_key as $val) {
        $file_ary[$i][$val]=$file[$val][$i];
      }
    }
    return $file_ary;
  }
?>

Этот код был адаптирован из примера здесь .

0 голосов
/ 18 января 2019

Может быть, вы можете попробовать с входным массивом, как:

<form method="post" enctype="multipart/form-data" action="index.php">   
    <input name="file[]" type="file" />
    <input name="file[]" type="file" />
    ...
    <input type="submit" name="add" value="Add" />
</form>

Pro Совет: Читайте о multiple на MDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...