2017-12-25 12 views
0

Backpack과 함께 Laravel (5.5)을 사용하고 있습니다. 배낭에는 업로드하기 전에 이미지 자르기를 허용하는 Cropper jQuery plugin이 포함되어 있습니다.Laravel Backpack Cropper에서 이미지를 업로드 할 때 원본 및 잘린 버전 저장

자른 버전과 이미지의 전체 버전을 모두 서버에 저장해야합니다. 자른 버전은 미리보기 이미지이고 전체 버전은 확대보기입니다.

기본적으로 배낭 구현은 자른 이미지 버전 만 저장합니다. 전체 크기를 저장하려는 계획은 전체 크기 이미지로 구성되는 추가 숨겨진 필드를 포함하도록 배킹 뷰를 수정하는 것입니다 (숨겨진 필드의 값을 onsubmit으로 설정)?

Cropper 설명서를 읽었으나 전체 크기 (자르기 전)로 이미지 데이터를 반환 할 방법과이 데이터가 양식 제출에 포함되어 있는지 (생각하지 않음) 확실하지 않습니다.

나는 한 두 가지 질문 :

  1. 가 이미 ( 에 추가로 자른 버전)를 서버로 전송 그렇다면, 가 보유하는 필드의 이름은 무엇인가되는 전체 이미지?
  2. 위의 내용이 거짓 인 경우, 클래스의 메소드가 나에게 반환되는 이미지 데이터를 전달할 수있는 방법이 있습니까? 그렇다면 을 별도의 필드에 서버에 보낼 수 있습니까?

두 번째 질문은이 이미지 업로드가 어떻게 작동하는지 잘 모르므로 (업로드하기 전에 base64로 변환 된 것으로 보이지만 실제로는 놀랍습니다).

미리 감사드립니다.

답변

1

나는 다음과 같은 구성으로 결국 한 솔루션 : 클라이언트 측에

  1. , 나는 resources/view/vendor/backpack/crud/fields/image.blade.phpfullImageData라는 숨겨진 필드를 추가했습니다. 그런 다음 동일한 파일 (줄 189)의 자른 버전 값을 설정하는 줄 다음에 submit 메서드의 익명 함수로 다음 JavaScript 행을 추가했습니다.

    $ mainImage.cropper ('clear') ; $ mainImage.cropper ('setData', $ mainImage.cropper ('getImageData')) var fullImageURL = $ mainImage.cropper ('getCroppedCanvas'). toDataURL (file.type); $ ('# fullImageData') .val (fullImageURL);

    서버에서
  2. , 모델에, fullImageData라고 (모든 가시성) 모델 속성을 추가하고 setFullImageDataAttribute 뮤 테이터는 이미지 데이터를 캡처 (그리고 파일에 저장), 그리고 마지막으로, fullImageData 필드를 추가 모델의 $ fillable 속성

이 상황이 다른 사람에게 도움이되기를 바랍니다.

+0

솔루션을 공유해 주셔서 감사합니다. – tabacitu