Я пытаюсь создать форму, с помощью которой пользователь может загружать несколько файлов изображений.
Я все еще нахожусь в самом начале, и я знаю, что этот код очень небезопасен. Сначала я хотел бы иметь возможность загружать фотографии, а затем потом добавлю остальные.
Я работаю в структуре MVC, и я не использую никаких CMS или классной работы.
Вид
Загрузка нескольких файлов с использованием одной формы
<form action="<?php echo Config::get('URL'); ?>image/uploadImages_action" method="post" enctype="multipart/form-data">
<input type="file" name="images[]" multiple required />
<input type="submit" value="Upload images" />
</form>
Контроллер
/**
* Upload images
*/
public function uploadImages_action()
{
Auth::checkAuthentication();
ImageModel::uploadImages();
Redirect::to('login/showProfile');
}
Модель
public static function uploadImages()
{
if (!empty($_FILES['images']['name'])) {
$files = $_FILES['images'];
$allowed = array('jpg', 'png', 'gif', 'jpeg');
foreach ($files['name'] as $position => $file_name) {
$file_tmp = $files['tmp_name'][$position];
$file_size = $files['size'][$position];
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_destination = 'uploads/' . $file_name_new;
if (move_uploaded_file($file_tmp, $file_destination)) {
echo 'Image successfully uploaded.';
return true;
}
}
}
}
Этот код ведет себя очень странно. Я могу загрузить некоторые фотографии, а другие нет, и я могу загружать только одну фотографию за раз. Если я выберу более одного изображения, он загрузит последний из них.
Я был бы очень рад за любую помощь. Я застрял в этом от часов!
Большое вам спасибо! Это сработало! Теперь я все еще не могу загрузить некоторые фотографии, но, по крайней мере, я на один шаг дальше! Огромное спасибо!! – Schwesi
Поскольку мне не хватает репутации, чтобы прокомментировать ваш вопрос, я попрошу здесь: не могли бы вы уточнить, какие файлы вы не можете загрузить? –
У меня есть два файла, которые идентичны, кроме их размера. Оба файла .jpg. Тот, который может быть загружен, составляет 84 КБ, тот, который не работает, составляет 5 МБ. Я уже снял лимит в моем php.ini до 40M, и у меня нет ограничений в моем коде. Я также не получаю сообщение об ошибке. – Schwesi