Добрый день, возникла такая интересная проблема. При загрузке
уже имеющийся картинки в форму, и отправке её на сервер всё работает нормально.
А вот при загрузке только что сфотканной с телефона картинки
(что то вроде: выбрать файл > сфоткать > ок) Всё идет не по плану.
Если не создавать экземпляр класса
\Image, то php метод видит файлы, но если я его создаю - то он их внезапно не видит.
\Image - Intervention Image (
image.intervention.io)
Вот метод принимающий фото из формы
public function updatePhoto(Request $request){
if ($request->hasFile('photo')) {
Log::info('file exist: '.\Auth::id());
}else{
Log::info('file not exist: '.\Auth::id());
}
$img = \Image::make($request->file('photo'));
// ...
Вот сама форма
<input id="updatePhotoFile" type="file" accept="image/*" style="display:none">
<div class="recoverLink" id="update-photo">Изменить фото</div>
И наконец скрипт отправляющий фото на сервер
updatePhoto = function(photo){
let xhr = new XMLHttpRequest();
let data = new FormData();
data.append("photo", photo);
xhr.open('POST', '/ajax/update-photo', false);
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
xhr.send(data);
if (xhr.status != 200) {
return xhr.status + ': ' + xhr.statusText;
alert('err')
} else {
return xhr.responseText;
}
}
$( "#update-photo" ).on( "click", function() {
$( "#updatePhotoFile" ).trigger( "click" );
});
$('#updatePhotoFile').change(function() {
let photo;
if(photo = updatePhotoFile.files[0]){
let result = JSON.parse(updatePhoto(photo)); // post ajax
console.log(result)
}
});
[2020-09-20 13:18:27] production.INFO: file exist: 58 // PC
[2020-09-20 13:18:51] production.INFO: file exist: 58 // PHONE - не создавая экземпляр \Image
[2020-09-20 13:19:10] production.INFO: file not exist: 58 // PHONE - Создавая экземпляр \Image
Кто сталкивался с подобным, прошу помочь.