Я использовал cropper.js плагин в своем приложении для обрезки изображений. Я могу обрезать изображения. Теперь я пытаюсь загрузить изображения, а не загружать их. Я обновил окно модального, которое показывает обрезанное изображение следующим образом:Загрузка обрезанного изображения с использованием плагина cropper.js
<!-- Show the cropped image in modal -->
<div class="modal fade docs-cropped" id="getCroppedCanvasModal" aria-hidden="true" aria-labelledby="getCroppedCanvasTitle" role="dialog" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="getCroppedCanvasTitle">Cropped</h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" style = "float: left;">Close</button>
<form class="form-inline" id="croperImgForm" role="form" method="post" action="${rc.getContextPath()}/module/simplewebcontent/save-image" enctype="multipart/form-data">
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox1" value="option1"> Save Image
</label>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox2" value="option2">Save Thumbnail
</label>
<button type="submit" class="btn btn-primary" id="svImg" style = "margin-left: 10px;">Save</button>
</form>
</div>
</div>
</div>
</div><!-- /.modal -->
Здесь я добавил форму в нижней части с возможностью сохранения изображения. Я пытаюсь использовать следующий сценарий, чтобы сохранить форму:
$("#svImg").click(function()
{
alert('button clicked');
$("#croperImgForm").submit(function(e)
{
var postData = $(this).serializeArray();
var formURL = $(this).attr("action");
$.ajax(
{
url : formURL,
type: "POST",
data : postData,
dataType : "html",
success:function(htmlData)
{
},
error: function(xhr, status, errorThrown) {
console.log("Error: " + errorThrown);
console.log("Status: " + status);
console.dir(xhr);
},
});
e.preventDefault();
e.unbind();
});
});
Теперь я нашел из документации, что я должен использовать следующий код, чтобы сохранить изображение:
// Upload cropped image to server if the browser supports `canvas.toBlob`
$().cropper('getCroppedCanvas').toBlob(function (blob) {
var formData = new FormData();
formData.append('croppedImage', blob);
$.ajax('/path/to/upload', {
method: "POST",
data: formData,
processData: false,
contentType: false,
success: function() {
console.log('Upload success');
},
error: function() {
console.log('Upload error');
}
});
});
Но я не уверен, как использовать этот код в качестве части представления формы, которую я пытаюсь реализовать как вызов ajax.
Также я использую Spring mvc, поэтому каковы будут параметры в методе контроллера в случае загрузки этого изображения.
Возможный дубликат [Как обрезать изображение на стороне клиента с помощью jcrop и загрузить его?] (Http://stackoverflow.com/questions/34651017/how-should-i-crop-the-image- at-client-side-using-jcrop-and-upload-it) –
вот полный учебник http://howsolve.com/image-crop-with-laravel54-intervention-and-cropperjs-jquery/ –