更新時間:2022-03-17 11:14:47 來源:動力節點 瀏覽1569次
上傳文件,也可以使用form表單向后端發送請求,也可以使用ajax向后端發送請求
Send a request to the back end through the form table
改進后的代碼不需要表單標簽,直接由控件實現。開發者只需要關注業務邏輯。JS 已為我們關閉
通過監控工具可以看到控件提交的數據,非常清晰,調試也非常簡單。
$.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請求通知服務器初始化
文件上傳后向服務器發送通知
在這里,我們需要處理一下MD5秒傳的邏輯。當服務器有相同文件時,用戶無需再次上傳,直接通知用戶二次傳輸
這里我們可以看到二次傳輸的邏輯很簡單,不是特別復雜。
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**部分**
文件初始化邏輯
接收文件塊數據。在這個邏輯中,我們接收文件塊數據。控制優化數據,方便調試。如果使用監控工具,可以看到控件提交的數據。
筆記:
(1)上面的java代碼可以直接使用。只需要上傳圖片路徑和采集數據,將數據寫入數據庫
(2)字節流用于上面上傳的文件。實際上,可以使用其他流。讀者需要改進下面的測試
(3)BeanUtils 是一個將實體對應的屬性分配給實體的工具
(4)上傳文件時不能使用request.getparameter(“”)獲取參數。而是可以直接解析請求,判斷每一項是否為文件,然后進行相應的操作(如果文件是流則讀取,如果不是文件則暫時保存到一個地圖。)
以上就是關于“JavaWeb實現文件上傳的示例”介紹,大家如果想了解更多相關知識,可以關注一下動力節點的JavaWeb學習視頻,里面的課程內容細致全面,由淺到深,通俗易懂,即使沒有基礎也可以聽懂,相信對大家的學習一定會有所幫助的。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習