目錄主題帖傳送門:Spring SpringMVC MyBatis 整合-重復(fù)的輪子造的不亦樂乎 - 簡書
上一篇:JSON請求范例 - 簡書
范例基于SSM框架,如何搭建移步:拉Jar包方式SSM框架搭建 - 簡書
前幾篇加起來解決的是處理邏輯和數(shù)據(jù)庫CRUD,不管是網(wǎng)頁還是應(yīng)用后臺蜂林,還有一個需求是共有的就是文件上傳硫豆,本篇講文件上傳網(wǎng)頁和Ajax方法冰垄。
主要實現(xiàn)了幾個功能
1掏熬、單文件/多文件表單上傳
2、但文件/多文件Ajax上傳
在controller下創(chuàng)建UploadController粗卜,添加如下方法
兩個方法是用于跳轉(zhuǎn)到上傳用HTML頁面的,返回的是String纳击,效果和ModelView設(shè)置的頁面name一致
正常頁面用的上傳
JSON用的方法续扔,比上面方法就是返回值不一樣,備注為ResponseBody
生成服務(wù)器文件名焕数,里面有個工具是生成文件的Md5纱昧,用于判斷文件是否重復(fù),但效率是不高的堡赔,小規(guī)钠鲂可以,大規(guī)模還是別用了加匈。
以上Controller里面上傳方法寫的不好存璃,因為我是改的單文件上傳,如果多文件列表雕拼,只返回了最后一個文件上傳狀態(tài)纵东,但是上傳的處理還是都處理的,多文件不影響使用啥寇。
WEB-INF/view下面生成幾個JSP待用
uploadSuccess和uploadView是一組偎球,調(diào)用的是uploadView和uploadFile方法用于頁面的文件上傳
ajaxUploadView.jsp用于Ajax上傳洒扎,返回JSON格式
需要Ajax上傳文件除了Jquery還需要一個三方插件ajaxfileupload,這個插件是需要改代碼的
首先Jquery可以去官網(wǎng)下載
ajaxfileupload基本很多都是copy的衰絮,非常感謝第一位寫出這個插件并分享出來的Coder袍冷!我在這里祝你
這個插件需要修改一個地方,有可能你找到的已經(jīng)改了猫牡,在createForm方法里胡诗,畫圈的地方,這個方法就是傳來的string轉(zhuǎn)數(shù)組淌友,遍歷數(shù)組來創(chuàng)建文件上傳的隱藏form
調(diào)用方法在ajaxUploadView.jsp里有不解釋了煌恢。
最后實現(xiàn)的效果
網(wǎng)頁表單上傳范例效果
Ajax上傳文件范例效果
后臺打印