Я гуглил последние 2 дня и до сих пор не могу найти решение этой проблемы. Я могу загрузить нормально, используя элемент ввода с атрибутом типа, установленным в файл. Но я не могу загрузить обрезанное изображение с помощью croppie на сервер.
Вот мой register.scala.html:
@helper.form(action = routes.ProfilesController.upload, 'id -> "profileForm", 'class -> "", 'enctype -> "multipart/form-data") {
@CSRF.formField
<div class="col-6 col-md-3 pic-padding">
<div id="upload-demo" class="upload-demo pic-1 mx-auto d-block rounded">
</div>
<div class="pic-number" href="#">1</div>
<label for="upload-pic1" class="pic-control-bg">
<img src="@routes.Assets.versioned("images/plus.png")" class="pic-control">
</label>
<input type="file" id="upload-pic1" name="pic1" class="upload-btn" accept="image/*">
<button type="button" class="upload-result">Result</button>
<script>
Demo.init();
</script>
</div>
}
Вот мой main.js:
$('.upload-result').on('click', function (ev) {
$uploadCrop.croppie('result', {
type: 'canvas',
size: 'viewport'
}).then(function (resp) {
$.ajax({
url: "http://localhost:9000/upload",
type: "POST",
data: {"image":resp},
success: function (data) {
alert(resp);
}
});
});
});
Вот мой ProfilesController.java
public Result upload() {
File file = request().body().asRaw().asFile();
return ok("File uploaded");
}
Вот фрагмент из файла маршрутов:
POST /upload controllers.ProfilesController.upload()
Ошибка, которую я получаю с вышеуказанным решением:
[CompletionException: java.lang.NullPointerException]
Пожалуйста, помогите! Последние два дня это меня напрягало, я просто не могу понять.