Пользователь выбирает img с файлом. Затем я динамически создаю форму с данными img из этого выбранного файла. и поместите его в качестве источника для тега. Позже, когда пользователь нажимает кнопку «Отправить», я создаю объект FormData. И получить блоб из DataUri.
Это код для поиска правильного изображения, его может быть больше одного.
var images = [];
$('#imgDiv'+id+' img').each(function(index, img){
images[index] = dataURItoBlob(img.src);
});
И функция dataURItoBlob
function dataURItoBlob(dataURI) {
var binary = atob(dataURI.split(',')[1]);
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: 'image/*'});
}
Затем я добавляю img в formData.
formData.append('images[]',images);
и сделай это
var req = new XMLHttpRequest();
req.open('post','/ads/add');
req.send(formData);
И сторона php. Используя laravel, я пробовал это
$images = Input::file('images[]');
Возвращает ноль для меня. То же самое для
$images = Input::file('images');
Когда я попробую это
$images = Input::get('images');
он возвращает как json-ответ ["[object Blob]"] или как dd(), который он возвращает
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b> <i>(size=1)</i>
0 <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'[object Blob]'</font> <i>(length=13)</i>
</pre>
Как я могу сохранить его, например, /uploads/images/1