我需要用ajax從客戶端上傳文件到服務器端。我已經讀過,這是可能的,但在我的項目中不起作用。我正在與Jquery和Spring Portlet合作。用ajax和spring portlet從客戶端上傳文件到服務器端
這是我在客戶端代碼:
<form method="post" id="formUploadFile">
<input id="uprloadFile" type="file" name="file"/>
<input id="submitButton" type="button" value="Upload File" />
</form>
的javascript:
var dataFormulario = new FormData($('#formUploadFile')[0]);
$.ajax({
url : accredit.cargarDocumentoURL,
type : "POST",
data : dataFormulario,
cache: false,
contentType: false,
processData: false,
success : function(data) {
alert("Success");
},
error : function(data) {
alert("Error");
}
});
我得到了我的控制器的這種方法的文件:
@ResourceMapping("uploadFile")
public void uploadFile(ResourceResponse response,
@ModelAttribute(value = "AccreditCommand") AccreditCommand accreditCommand) {
System.out.println("File : " + accreditCommand.getFile());
successResponse(response);
}
我對象的ModelAttribute :
public class AccreditCommand {
private byte[] file;
public byte[] getFile() {
return file;
}
public void setFile(byte[] file) {
this.file = file;
}
}
日誌中沒有錯誤,並且AccreditCommand中的字段「文件」爲空。
當我檢查谷歌瀏覽器的網絡選項卡,它顯示了在請求負載:
------ WebKitFormBoundarymChhAWgmzsVyaJ2P 內容處置:表格數據; NAME = 「文件」;文件名= 「Cargo_AC123TU2015991946296415.pdf」 內容類型:應用程序/ PDF
------ WebKitFormBoundarymChhAWgmzsVyaJ2P--
看來,我送一個空文件。我不知道我做錯了什麼。
請參考以下鏈接http://hmkcode.com/spring-mvc-upload-file-ajax-jquery-formdata/ – Dev