PHP Многократная загрузка файлов на сервер - PullRequest
0 голосов
/ 23 сентября 2011

Это мой второй вопрос на форуме.Я исчерпал все возможности исследовать это самостоятельно.У меня есть HTML-форма, которая будет обработана с помощью скрипта.В этой форме пользователь имеет возможность загрузить до 10 изображений .... каждое изображение имеет свое собственное поле ввода, как это ...

<form action="upload.php" method="post" enctype="multipart/form-data">

<label for="file">Filename:</label>
<input type="file" name="file" id="file" />

<label for="file">Filename:</label>
<input type="file" name="file" id="file" />

<label for="file">Filename:</label>
<input type="file" name="file" id="file" />

<label for="file">Filename:</label>
<input type="file" name="file" id="file" />

<br />
<input type="submit" name="submit" value="Submit" />
</form>

php это ...

$client = $_POST['company'];
$date = date("mdy");
$clientFolder = $client . $date;

mkdir('../../../uploads/' . $clientFolder . '/', 0700);
$folderPath = '../../../uploads/' . $clientFolder . '/';



if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 100000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists($folderPath . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      $folderPath . $_FILES["file"]["name"]);
      echo "Stored in: " . $folderPath . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }

Я могу получить один файл для правильной загрузки, но не более одного.Я использовал этот урок.http://www.w3schools.com/php/php_file_upload.asp

Нужно ли проходить через них?Или мне нужны уникальные имена и идентификаторы?Любая помощь будет оценена!Я новичок в php .... Я должен сказать, хотя .. Я люблю это !!!пока ...

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

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

Есть небольшое исключение, которое вы, вероятно, захотите использовать: добавление квадратных скобок заставит PHP построить массив:

<label for="file">Filename:</label>
<input type="file" name="file[]">

<label for="file">Filename:</label>
<input type="file" name="file[]">

Вы можете использовать var_dump() для проверки точной структуры из $_FILES.

Во-вторых, атрибут HTML id должен содержать уникальный идентификатор. Скорее всего, ваши скрипты на стороне клиента будут вести себя неправильно.

0 голосов
/ 23 сентября 2011

Возможно, вы захотите назвать свои входные данные по-другому (скажем, file1, file2 и т. Д.), Тогда в PHP вы сделаете что-то вроде:

$i = 1;
while(isset($_POST['file'.$i])){
    //do upload here
    $i++;
}

Причина, по которой вы загружаете только 1 файл, состоит в том, что вы назвали входные данные «файлом» (и потому что вы не просматриваете входные данные). Измените это, и это должно быть хорошо.

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