Не удается загрузить несколько файлов на сервер с помощью PHP - PullRequest
1 голос
/ 18 мая 2019

Я пытаюсь загрузить несколько изображений на сервер одновременно. Я использую скрипт загрузки, который работает для отдельных изображений. Однако после добавления цикла for сценарий больше не работает.

Я прокомментировал функцию move_upload_file для проверенных целей и заменил их на операторы echo.

При попытке загрузить несколько файлов я получаю обработчик ошибок: «Вы не можете загружать файлы этого типа!». И после добавления некоторых операторов echo для имени и расширения файла, он отображается как «Sis» или 000.

Будем весьма благодарны за любые предложения по устранению этой проблемы. Мой код PHP показан ниже:

<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

if (!isset($_POST['submit'])) {
  $total = count($_FILES['file']['name']);

  for( $i=0 ; $i < $total ; $i++ ) {
  $file = $_FILES['file'];

  $fileName = $_FILES['file']['name'][$i];
  $fileTmpName = $_FILES['file']['tmp_name'][$i];
  $fileSize = $_FILES['file']['size'][$i];
  $fileError = $_FILES['file']['error'][$i];
  $fileType = $_FILES['file']['type'][$i];

  $fileExt = explode('.', $fileName);
  $fileActualExt = strtolower(end($fileExt));
  // File types allowed
  $allowed = array('jpg', 'jpeg', 'png', 'gif');
  if (in_array($fileActualExt, $allowed)) {
    if ($fileError === 0) {
      if ($fileSize < 9000000) {
        $fileNameNew = uniqid('', true).".".$fileActualExt;
        $fileDestination = 'images/Showroom-images/'.$fileName;
        /*move_uploaded_file($fileTmpName, $fileDestination);
        echo "Success!";*/
        echo $fileName;
        echo $fileDestination;
      } else {
        echo "Your file is too big!";
      }
    } else {
      echo "There was an error, please try again";
    }
  } else {
    echo $fileName + "<br>";
    echo $fileType + "<br>";
    echo $fileActualExt + "<br>";
    echo "You can't upload files of this type!";
  }
}}

?>

Вот и форма HTML:

<form action="test.php" method="post" enctype="multipart/form-data">
    <input name="file" id="file" type="file" multiple="multiple" />
    <input type="submit" value="submit" id="submit"/>
  </form>

1 Ответ

0 голосов
/ 18 мая 2019

Хорошо, поэтому я не проверял ваш PHP-процесс, но, посмотрев на ваш код, вы сможете исправить вашу проблему, изменив имя поля с file на file[], см. Ниже.

<form action="test.php" method="post" enctype="multipart/form-data">
    <input name="file[]" id="file" type="file" multiple="multiple" />
    <input type="submit" value="submit" id="submit"/>
</form>

Добавление квадратных скобок в основном обрабатывает поле как массив, который будет принимать несколько файлов.

Вы также используете + для объединения строк в вашем PHP, они должны быть . вместо ...

    echo $fileName . "<br>";
    echo $fileType . "<br>";
    echo $fileActualExt . "<br>";
    echo "You can't upload files of this type!";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...