обрезаю изображение переде загрузкой через cropper.js Отправляю на сервер
cropResize() {
let initialAvatarURL;
let canvas;
const that = this;
if (this.cropper) {
$.magnificPopup.close();
canvas = this.cropper.getCroppedCanvas({
width: 160,
height: 160,
});
canvas.toBlob(function(blob) {
const formData = new FormData();
formData.append('image', blob);
const config = {
'content-type': 'multipart/form-data'
}
axios.post('/cabinet/user/avatar/upload', formData, config)
.then((response) => {
if (response.data.error === 0) {
that.profile.avatar = '/storage/' + response.data.attributes.avatar;
$('.img__avatar').css('background-image', 'url(/storage/' + response.data.attributes.avatar + ')');
that.loading = false;
toast.fire({
type: 'success',
title: response.data.message
});
that.loading = false;
} else {
toast.fire({
type: 'error',
title: response.data.message
});
that.loading = false;
}
})
.catch(error => {});
});
}
}
в контроллере принимаю вот это
array:1 [
"image" => UploadedFile {#463
-test: false
-originalName: "blob"
-mimeType: "image/png"
-error: 0
#hashName: null
path: "/tmp"
filename: "phpT8KBGL"
basename: "phpT8KBGL"
pathname: "/tmp/phpT8KBGL"
extension: ""
realPath: "/tmp/phpT8KBGL"
aTime: 2019-11-07 20:06:58
mTime: 2019-11-07 20:06:58
cTime: 2019-11-07 20:06:58
inode: 925492
size: 78858
perms: 0100600
owner: 525370
group: 601
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
}
]
как мне сохранить изображение?
пробую так, но не работает
public function uploadavatar(Request $request){
if ($request->hasFile('image')){
$image = $request->file('image');
$height = Image::make($request->file('image'))->height();
$width = Image::make($request->file('image'))->width();
if ($height < 60 && $width < 60){
return response()
->json([
'message' => Lang::get('profile.size_avatar'),
'error' => 1
], 200);
}
if (empty($image->getClientOriginalExtension())) $ext = 'jpg'; else $ext = $image->getClientOriginalExtension();
$fileName = Auth::user()->id.'.'.$ext;
if (!empty($fileName)){
Storage::delete('uploads/avatars/'.Auth::user()->attributes->avatar);
Storage::disk('public')->put('uploads/avatars/'.$fileName, file_get_contents($image));
}
$avatar = 'uploads/avatars/'.$fileName;
}else $avatar = Auth::user()->attributes->avatar;
$attributes = UserAttribute::where('user_id',Auth::user()->id)->update([
'avatar' => $avatar
]);
if ($attributes) return response()
->json([
'message' => Lang::get('profile.update_success'),
'attributes' => UserAttribute::where('user_id',Auth::user()->id)->first(),
'error' => 0,
], 200);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Планирую добавить на сайт второй языкКак делаются переключатели языковые и как делается перевод на второй язык статичной информации на сайте?
Использую MadelineProto для взаимодействия с Telegram APIНужно забанить/выкинуть пользователя из приватного канала – для этого есть метод channels
Стало интересно как работают некоторые ф-ииПри нажатии ctrl + клик по Math