Nella mia applicazione ho utilizzato il plug-in cropper.js per ritagliare le immagini. Sono in grado di ritagliare le immagini. Ora sto cercando di caricare le immagini invece di scaricarle. Ho aggiornato la finestra modale che mostra l'immagine ritagliata come segue:Caricamento di un'immagine ritagliata utilizzando un plugin 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 -->
Qui ho aggiunto un modulo in fondo con l'opzione di salvare l'immagine. Sto cercando di utilizzare il seguente script per salvare il modulo:
$("#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();
});
});
Ora ho trovato dalla documentazione che avrei dovuto usare il seguente codice per salvare l'immagine:
// 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');
}
});
});
Ma io non sono sicuro come utilizzare questo codice come parte dell'invio del modulo che sto cercando di implementare come una chiamata Ajax.
Anche io uso Spring mvc, quindi quali sarebbero i parametri nel metodo controller in caso di questo caricamento dell'immagine.
Possibile duplicato di [Come devo ritagliare l'immagine sul lato client utilizzando jcrop e caricarlo?] (Http://stackoverflow.com/questions/34651017/how-should-i-crop-the-image- at-client-side-using-jcrop-and-upload-it) –
qui è un tutorial completo http://howsolve.com/image-crop-with-laravel54-intervention-and-cropperjs-jquery/ –