Загрузить несколько файлов с помощью пуленепробиваемой библиотеки

В настоящее время я пытаюсь загрузить несколько файлов изображений, используя одну форму (AJAX) и Пуленепробиваемая библиотека.

Мне удалось получить 1 работу, #avatar-upload-input успешно загружает изображения через форму AJAX.

<form method="post" action="ajax/updateprofile" enctype="multipart/form-data" id="dynamicform" data-func="updateprofile">
<input type="file" name="avatar" id="avatar-upload-input" accept="image/*"/>
<input type="file" name="banner" id="banner-upload-input" accept="image/*"/>
</form>

Сейчас я пытаюсь заставить работать второй, но я действительно не уверен, как бы я пошел и получил это работать!

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

В комментариях к этим вопросам было высказано предположение, что для $ _FILES необходим цикл. Я пробовал следующее:

foreach($_FILES as $file) {
$image = new Bulletproof\Image($file);
$image->setName($Hashids->encode($_SESSION['user_id']) . '-' . uniqid());
$image->setMime(array('jpg', 'png', 'jpeg'));
$image->setLocation('../assets/images/usercontent/pfp');

if($image['avatar']){
$upload_pfp = $image->upload();

bulletproof\utils\resize($upload_pfp->getFullPath(), $upload_pfp->getMime(), $upload_pfp->getWidth(), $upload_pfp->getHeight(), 190, 175);
}
}

Это не дало мне никаких ошибок, но и не загружало изображения.

Я надеюсь, что кто-то может помочь мне решить, как я могу загрузить несколько изображений, используя упомянутую библиотеку!

1

Решение

foreach($_FILES as $key => $file) { //get upload name: $key
$image = new Bulletproof\Image($file);
$image->setName($Hashids->encode($_SESSION['user_id']) . '-' . uniqid());
$image->setMime(array('jpg', 'png', 'jpeg'));
$image->setLocation('../assets/images/usercontent/pfp');

if($key == 'avatar'){             //which file
if($image->upload()){           //upload succeed?
bulletproof\utils\resize(     //you are still playing with $image
$image->getFullPath(),
$image->getMime(),
$image->getWidth(),
$image->getHeight(),
190,
175
);
}
}elseif($key == 'banner'){        //do it all over again with banner
if($image->upload()) {
//do something with banner
}
}
}
2

Другие решения

Других решений пока нет …