Попытка вызвать функцию uploadcare php с помощью вызова jquery ajax, и я получаю все, чтобы работать нормально, за исключением выбранной пользователем области обрезки. Он обрезает до правильного рациона, но по умолчанию все время остается сверху слева.
Чего мне не хватает, чтобы передать выбранную пользователем область обрезки?
Вот код jQuery, который запускает скрипт
$(function() {
$('#avatar-uc').each(function() {
$("#avatar-uc").find('.uploadcare-widget-button-open').html('<i class="fa fa-camera"></i> Edit Photo');
$("#avatar-uc").find('.uploadcare-widget-button-remove').html('<i class="fa fa-camera"></i> Edit Photo');
WidgetResetAvatar(
uploadcare.SingleWidget($(this).children('input'))
);
});
});
function WidgetResetAvatar(widget) {
widget.onChange(function(file) {
if (file) {
file.done(function(fileInfo) {
$.ajax({
url: '/asset/create/avatar',
method: 'POST',
disablePreview: true,
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')},
data: {uuid: fileInfo.uuid},
})
.done(function( data ) {
$('#avatarPhoto').css('background-image', 'url("'+data.avatar_url+'")')
});
});
}
widget.value(null)
});
}
И функция PHP
public function CreateAvatar(Request $request)
{
if (!Auth::check()) {
return Response::json(array('message' => 'not logged in'));
}
$user = Auth::user();
if ($request->ajax()) {
if (!empty($request->uuid)) {
$api = app()->uploadcare;
$original_file = $api->getFile($request->uuid);
$cropped_file = $original_file->crop(150,150)->copy();
$cropped_file->store();
$cropped_file_url = $cropped_file->data['original_file_url'];
$upload_url = "https://ucarecdn.com";
$remove_upload_care_url = "";
$cropped_file_path = str_replace($upload_url,
$remove_upload_care_url, $cropped_file_url);
}
else {
$cropped_file_path = "";
}
$user->avatar = $cropped_file_path;
$user->save();
return Response::json(['avatar_url' => $cropped_file_url]);
}
}
По какой-то причине растениеводство () функция не принимает координаты для области обрезки, просто центрировать ее или нет (см. код).
Самый простой способ — создать URL рукой. Бонусные баллы за отправку PR в библиотеку за прием координат.
Других решений пока нет …