首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Uploadcare未正确裁剪

Uploadcare未正确裁剪
EN

Stack Overflow用户
提问于 2017-06-07 03:03:32
回答 1查看 118关注 0票数 0

尝试使用jquery ajax调用触发uploadcare php函数,除了用户选择的裁剪区域之外,一切都正常工作。它修剪到右侧的配给,但默认始终位于左上角。

在传递用户选择的裁剪区域时,我遗漏了什么?

以下是运行该脚本的jQuery代码

代码语言:javascript
复制
$(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函数

代码语言:javascript
复制
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]);
}
}
EN

回答 1

Stack Overflow用户

发布于 2017-06-07 17:57:59

由于某些原因,crop()函数不接受裁剪区域的坐标,只是为了居中或不居中(参见the code)。

最简单的方法是构建URL by hand。将PR发送到接受坐标的库的奖励积分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44397911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档