Мне нужно загрузить файл со стороны клиента и манипулировать им на стороне сервера.После манипуляции It (файл) должен отображаться на одной и той же веб-странице без перезагрузки всей страницы.Я использую Scala в Play Framework 2.X, с отдельными html, js-скриптами.Типы файлов - .txt .xml .html
и т. Д.
Я уже пробовал использовать формы и загрузил файл.Манипулированный вывод отображается на следующей странице.
Редактировать: 1
HTML
<form class = "class1" id="myForm1" action="/upload" method="post" enctype="multipart/form-data">
<input type="file" size="60" id= "fileUpload1" name="fileUpload1">
<input type="submit" id ="ajaxCallUpload1" value="Validate">
</form>
JS
var form = document.getElementById('fileUpload1');
var uploadButton = document.getElementById('ajaxCallUpload1');
var outputMessage = document.getElementById('message1');
form.onsubmit = function(event){
event.preventDefault();
uploadButton.innerHTML= "Uploading.... "
}
var formdata = new FormData();
formdata.append('file',form)
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
alert(xhr.responseText);
}
}
xhr.open('POST','/upload',true);
xhr.onload = function(){
if (xhr.status === 200){
uploadButton.innerHTML = 'Uploaded';
}
else{
alert('An error occurred!')
}
};
xhr.send(formdata)
Контроллер
def upload = Action(parse.multipartFormData) { request =>
request.body.file("fileUpload1").map { file =>
//file manupulation
Ok( output response)
}.getOrElse {
Ok("Error during uploading")
}}
Я получаю ошибку вform.onsubmit () и вывод будет error-Error во время загрузки (когда страница загружается).После загрузки файла я получаю вывод на другой странице.