java文件上傳的注意事項(多圖上傳)

1.前期的準備工作

圖片上傳狞悲,我們需要先來了解一下文件的上傳。

以jsp文件與servlet作為客戶端服務器端進行上傳下載為例回右。

客戶端頁面(jsp文件)需要設置

1.表單的method=post

2.設置enctype=multipart/form-date

3.使用具有name屬s性的file元素


服務器端(需要借助第三方jar包:commons-fileupload-1.2.2.jar,commons-io-2.2.jar)

1.創(chuàng)建DiskFileItemFactory

DiskFileItemFactory factory = new DiskFileItemFactory();

2.創(chuàng)建ServletFileUpload

ServletFileUpload upload = new ServletFileUpload(factory);

3.通過ServletFileUpload的parseRequest方法得到所有的FileItem

Listlist = upload.parseRequest(request);

2.開始執(zhí)行上傳操作

for(FileItem item:list){

//需要先判斷一下是文件(file)還是表單信息

if (!item.isFormField()) {

//暫時用時間節(jié)點來保證存儲的路徑的唯一性

String path = this.getServletContext().getRealPath("\\upload");

Date date = new Date();

SimpleDateFormat format = new SimpleDateFormat("/yyyy/MM/dd/HH/mm/ss/");

File file = new File(path+format.format(date));

//判斷文件是否存在 不存在就創(chuàng)建

if (!file.exists()) {

file.mkdirs();

}

File file2 = new File(file.getPath(), item.getName());

FileOutputStream fos = new FileOutputStream(file2);

IOUtils.copy(item.getInputStream(), fos);

fos.close();

}

上傳的文件在Tomcat路徑下

D:\tool\Tomcat\apache-tomcat-6\apache-tomcat-6.0.44\webapps\Upload\upload

這是單文件上傳,通過實踐節(jié)點來保證唯一性

因為相同的文件中捆,上傳之后會覆蓋之前的。所以我們一定要保證上傳文件的唯一性

我們還可以通過在服務器端隨機生成UUID號+文件名來生成新的唯一的文件名

//系統(tǒng)給定的隨機的id號---唯一id

UUID uuid = UUID.randomUUID();

String fileName = uuid + "_"+item.getName();

System.out.println("filename:"+fileName);

File file = new File(parentFile, fileName);

3.文件上傳

Mapmap = new HashMap<>();

if(item.isFormField()){

String key = item.getFieldName();

if(map.get(key)==null){

map.put(item.getFieldName(), item.getString("utf-8"));

}else{

//復選框值的處理

map.put(key, map.get(key)+","+item.getString("utf-8"));

}

}


這里我們用的是一個集合Map來接收坊饶,通過BeanUtils.populate(user, map);? //將map當成User屬性的方式放入到User對象中泄伪。(用到了上面第一個jar包)

4.多圖片上傳

我們需要創(chuàng)建一個對象來接收。

由于我們之前已經(jīng)做了圖片的唯一性操作匿级,所以可以盡情的上傳圖片蟋滴,接收的時候用一個隊象的List<String>urlList來接收.由于我們之前用的是遍歷for(FileItem item:list),所以我們可以把每次遍歷的用list來保存。然后也可以轉發(fā)給前端

user.getListUrls().add("upload"+File.separator+datePath+File.separator+item.getName());

request.setAttribute("listUrls", user.getListUrls());

request.getRequestDispatcher("showImage.jsp").forward(request, response);

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痘绎,一起剝皮案震驚了整個濱河市津函,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孤页,老刑警劉巖尔苦,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡蕉堰,警方通過查閱死者的電腦和手機凌净,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屋讶,“玉大人冰寻,你說我怎么就攤上這事∶笊” “怎么了斩芭?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乐疆。 經(jīng)常有香客問我划乖,道長,這世上最難降的妖魔是什么挤土? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任琴庵,我火速辦了婚禮,結果婚禮上仰美,老公的妹妹穿的比我還像新娘迷殿。我一直安慰自己,他們只是感情好咖杂,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布庆寺。 她就那樣靜靜地躺著,像睡著了一般诉字。 火紅的嫁衣襯著肌膚如雪懦尝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天壤圃,我揣著相機與錄音陵霉,去河邊找鬼。 笑死埃唯,一個胖子當著我的面吹牛撩匕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播墨叛,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼止毕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漠趁?” 一聲冷哼從身側響起扁凛,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎闯传,沒想到半個月后谨朝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年字币,在試婚紗的時候發(fā)現(xiàn)自己被綠了则披。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡洗出,死狀恐怖士复,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翩活,我是刑警寧澤阱洪,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站菠镇,受9級特大地震影響冗荸,放射性物質發(fā)生泄漏。R本人自食惡果不足惜利耍,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一蚌本、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隘梨,春花似錦魂毁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咬崔。三九已至税稼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垮斯,已是汗流浹背郎仆。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兜蠕,地道東北人扰肌。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像熊杨,于是被迫代替她去往敵國和親曙旭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 本文包括:1晶府、文件上傳概述2桂躏、利用 Commons-fileupload 組件實現(xiàn)文件上傳3、核心API——Dis...
    廖少少閱讀 12,560評論 5 91
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理川陆,服務發(fā)現(xiàn)剂习,斷路器,智...
    卡卡羅2017閱讀 134,715評論 18 139
  • 出處:http://blog.csdn.net/haluoluo211/article/details/52068...
    c兩袖清風閱讀 3,260評論 0 1
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法鳞绕,內(nèi)部類的語法失仁,繼承相關的語法,異常的語法们何,線程的語...
    子非魚_t_閱讀 31,665評論 18 399
  • 夜如約而至了垂蜗,月慢慢爬上梢頭楷扬,斑駁了樹影與永恒的情思。心頭如有月照明一般贴见,如有夜來香的綻放烘苹,如有甘薯藤的幽幽,洋溢...
    舒小君閱讀 180評論 0 0