更新時間:2022-03-17 11:14:47 來源:動力節(jié)點 瀏覽1895次
上傳文件,也可以使用form表單向后端發(fā)送請求,也可以使用ajax向后端發(fā)送請求
Send a request to the back end through the form table
改進后的代碼不需要表單標簽,直接由控件實現(xiàn)。開發(fā)者只需要關注業(yè)務邏輯。JS 已為我們關閉

通過監(jiān)控工具可以看到控件提交的數(shù)據(jù),非常清晰,調試也非常簡單。

$.ajax({
url : "${pageContext.request.contextPath}/UploadServlet",
type : "POST",
data : $( '#postForm').serialize(),
success : function(data) {
$( '#serverResponse').html(data);
},
error : function(data) {
$( '#serverResponse').html(data.status + " : " + data.statusText + " : " + data.responseText);
}
});
AJAX 分為兩部分。一部分是初始化。在上傳文件之前,通過ajax請求通知服務器初始化

文件上傳后向服務器發(fā)送通知

在這里,我們需要處理一下MD5秒傳的邏輯。當服務器有相同文件時,用戶無需再次上傳,直接通知用戶二次傳輸

這里我們可以看到二次傳輸?shù)倪壿嫼芎唵?,不是特別復雜。
var form = new FormData();
form.append("username","zxj");
form.append("avatar",file);
//var form = new FormData($("#postForm")[0]);
$.ajax({
url:"${pageContext.request.contextPath}/UploadServlet",
type:"post",
data:form,
processData:false,
contentType:false,
success:function(data){
console.log(data);
}
});
java**部分**
文件初始化邏輯

接收文件塊數(shù)據(jù)。在這個邏輯中,我們接收文件塊數(shù)據(jù)。控制優(yōu)化數(shù)據(jù),方便調試。如果使用監(jiān)控工具,可以看到控件提交的數(shù)據(jù)。

筆記:
(1)上面的java代碼可以直接使用。只需要上傳圖片路徑和采集數(shù)據(jù),將數(shù)據(jù)寫入數(shù)據(jù)庫
(2)字節(jié)流用于上面上傳的文件。實際上,可以使用其他流。讀者需要改進下面的測試
(3)BeanUtils 是一個將實體對應的屬性分配給實體的工具
(4)上傳文件時不能使用request.getparameter(“”)獲取參數(shù)。而是可以直接解析請求,判斷每一項是否為文件,然后進行相應的操作(如果文件是流則讀取,如果不是文件則暫時保存到一個地圖。)
以上就是關于“JavaWeb實現(xiàn)文件上傳的示例”介紹,大家如果想了解更多相關知識,可以關注一下動力節(jié)點的JavaWeb學習視頻,里面的課程內容細致全面,由淺到深,通俗易懂,即使沒有基礎也可以聽懂,相信對大家的學習一定會有所幫助的。