Я использую summernote и хочу, чтобы загрузка сервера была асинхронно. Я планирую, чтобы преобразовать изображение в base64 и отправить в сервлет через AJAX там я сэкономлю сжать файл и вернуть URL файла изображения для редактирования СРКА, как показано ниже:base64 to image file
var edit = function() {
$('.click2edit').summernote({
focus: true,
onImageUpload: function(files, editor, welEditable) {
sendFile(files[0],editor,welEditable);
}
});
};
function sendFile(file,editor,welEditable) {
alert(file.size);
var reader = new FileReader();
var imgfile = reader.readAsBinaryString(file);
alert(file);
$.ajax({
method:"POST",
url: 'imageupload',
data: {imageFile:imgfile},
success:function(response)
{
alert("file uploaded successfully");
return response;
},
error: function(response,status,err)
{
alert("upload failed");
}
});
}
ниже мой сервлет код. здесь я получаю файл как null. Я считаю, что я должен получить файл как строку здесь. может кто-нибудь помочь, почему?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("image upload");
String file = (String)request.getParameter("imageFile");
System.out.println("file: " + file);
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.print(file);
}