2017-01-30 8 views

답변

0

이 질문의 클라이언트 측에서 자르기 상자 데이터를 패키지화하고 서버로 보내는데 사용하는 코드는 다음과 같습니다. 내가 처리 할 서버 측에

formData.append('last_crop', JSON.stringify($imageBox.cropper('getCropBoxData')));

$('#crop_button').click(function(){ 
    // Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`. 
    // Store crop coordinates to db for future visit. 
    var canvas = $imageBox.cropper('getCroppedCanvas'); 
    canvas.toBlob(function (blob) { 
     var formData = new FormData(); 
     formData.append('croppedImage', blob); // 'croppedImage' is the sent filename 
     formData.append('last_crop', JSON.stringify($imageBox.cropper('getCropBoxData'))); 

     $.ajax('{% url 'profile_crop_avatar' %}', { 
      method: "POST", 
      data: formData, 
      processData: false, 
      contentType: false, 
      success: function() { 
       console.log('Upload success'); 
      }, 
      error: function() { 
       console.log('Upload error'); 
      } 
     }); 
    }, "image/jpeg", 0.75); 

    // Also update masthead image after crop 
    $('#masthead-avatar').attr('src', canvas.toDataURL()); 
}); 

(장고)와 함께 좌표를 저장 : ESP 참조

# Save new image and crop coords to profile 
p = request.user 
p.last_crop_coords = request.POST.get('last_crop') 
p.save()