У меня есть загрузка нескольких файлов, и я хотел бы показать процент загрузки. В JavaScript У меня есть этот код:Загрузить MultipartFile с процентом
function uploadFunction(fileType){
//CSRF attribute for spring security
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
var formData = new FormData();
var fileControl = document.getElementById(fileType);
var length = fileControl.files.length;
for(var i = 0; i< length; i++){
formData.append('file[]',fileControl.files[i]);
}
formData.append('idFleet', selectedFleet);
formData.append('idCar', $("#selectedCar").val());
if(fileType!='dat')
formData.append('initialKm', 0);
else
formData.append('initialKm', $("#initialKm").val());
return jQuery.ajax({
url : 'upload',
type: 'POST',
contentType: false,
processData: false,
data:formData,
beforeSend:function(xhr) {
xhr.setRequestHeader(header, token);
waitingModal.showPleaseWait();
},
success: function(data,status,xhr){
//No exception occurred
if (data.status){
//Also the field are right(for e.g. form value)
if(data.success){
//Store information if file is datatable
if (fileType=='datatable')
$("#datatablePath").val(data.result[0]);
notifyMessage(fileType + " has been uploaded!", 'success');
uploadResult=true;
}
else{
//code if there are some error into form for example
}
} else {
notifyMessage(data.result, 'error');
$('#acquisitionWizard').bootstrapWizard('show',2);//show
uploadResult=false;
}
},
error: function(xhr,status,e){
window.location.href = "/DART/500";
}
}).complete(function() {
//add timeout because otherwise user could see a too fast waiting modal
setTimeout(function(){
waitingModal.hidePleaseWait();
}, 1000);
});
}
и весной у меня есть
@Override
@RequestMapping(value = { "/upload"}, method = RequestMethod.POST)
public @ResponseBody Response uploadFiles(Principal principal, @RequestParam("file[]") MultipartFile[] file, @RequestParam("idFleet") Integer idFleet, @RequestParam("idCar") Integer idCar, @RequestParam("initialKm") Integer initialKm) {
try {
ArrayList<String> path=fleetAcquisitionServices.uploadFiles(principal.getName(), file, idFleet, idCar, initialKm);
return new Response(true,true,path,null);
} catch (FileEmptyException e) {
....
}
}
и используя MultipartFile
transferTo
метод, который я загрузить файл. Я прочитал несколько руководств, но все для подачки, возможно ли интегрировать процентный прогресс в моем коде? Я использую этот код как для веб-страницы, так и для вызова REST от клиента, и с помощью этого метода я не получаю сообщение об ошибке.
Я использовал «OnProgress» событие для отображения информации. Вот ссылка, в которой объясняется, как использовать ее с jQuery: [JQuery ajax progress] (http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/) – Roberto
благодарит за работу , – luca
Luca, а как насчет ответа на свой вопрос? –