Так что на данный момент у меня есть следующий код в моем HTML <input type="file" required required="required" name="image" multiple="">
и затем, прежде чем я добавил тег mutliple=""
, это всегда работало для меня,
if(isset($_POST['Submit']))
{
$current_image=$_FILES['image']['name'];
$extension = substr(strrchr($current_image, '.'), 1);
if (($extension!= "png") && ($extension != "jpg"))
{
die('Unknown extension');
}
$time = date("fYhis");
$new_image = $time . "." . $extension;
$destination="./../img/treatments/".$new_image;
$action = copy($_FILES['image']['tmp_name'], $destination);
но теперь, когда я пытаюсь загрузить несколько файлов, я думаю, что мне нужно добавить массив для их имен, но я не могу понять это, я не хочу сильно менять свой код, если смогу.
Также в данный момент img - это только одно поле в моей базе данных, насколько это проблема?
EDIT
Я нашел этот код, но не могу понять, как его реализовать и заставить его работать ...
После того, как мы попробовали десятки способов исправить недоработку массива $ _FILES, я не нашел ни одного, который мог бы работать с именем входа, например: userfile [christiaan] [] [] [is] [gaaf] [ ]
Итак, я придумал этот класс
<?php
/**
* A class that takes the pain out of the $_FILES array
* @author Christiaan Baartse <christiaan@baartse.nl>
*/
class UploadedFiles extends ArrayObject
{
public function current() {
return $this->_normalize(parent::current());
}
public function offsetGet($offset) {
return $this->_normalize(parent::offsetGet($offset));
}
protected function _normalize($entry) {
if(isset($entry['name']) && is_array($entry['name'])) {
$files = array();
foreach($entry['name'] as $k => $name) {
$files[$k] = array(
'name' => $name,
'tmp_name' => $entry['tmp_name'][$k],
'size' => $entry['size'][$k],
'type' => $entry['type'][$k],
'error' => $entry['error'][$k]
);
}
return new self($files);
}
return $entry;
}
}
?>
Это позволяет получить доступ к загруженному файлу, используя следующий тип ввода
<input type="file" name="userfile[christiaan][][][is][gaaf][]" />
как
<?php
$files = new UploadedFiles($_FILES);
var_dump($files['userfile']['christiaan'][0][0]['is']['gaaf'][0]);
// or
foreach($files['userfile']['christiaan'][0][0]['is']['gaaf'] as $file) {
var_dump($file);
}
?>