ssm框架下文件上傳

springmvc實現文件上傳的步驟:

1.頁面上,通過input來準備file組件,該標簽,必須給定name屬性值
同時,要求form表單必須給定一個屬性:enctype="multipart/form-data"
2.在pom.xml文件中,添加文件上傳的第三方工具:
commons-fileupload-1.3.2.jar
commons-io-2.2.jar
3.在app-springmvc.xml配置文件中,準備上傳操作的對象:CommonsMultipartResolver
在這個對象中,我們可以對文件大小,編碼方式等進行設定
4.在控制器中,通過@RequestParam MultipartFile pic這種方式,來接收頁面傳遞的文件
這里,參數的名字必須與頁面上file組件的name屬性值一致
此時,在控制器中,已經能夠正常地接收頁面上傳的文件了,下一步,只需要把接收的這個文件,保存到服務器的硬盤上即可
<!-- 2文件上傳依賴 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version></dependency>
<!-- 3文件上傳 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" ><property name="maxUploadSizePerFile" value="102400000" ></property></bean>

控制器:

<!-- 4 控制器。。。文件上傳 -->
@RequestMapping(value="addFile",method=RequestMethod.POST)public String addFile(@RequestParam MultipartFile pic,HttpServletRequest request,Model model){String filename = pic.getOriginalFilename();System.out.println("接收到的文件的名字: "+filename);String contentType = pic.getContentType();System.out.println("接收文件的類型: "+contentType);InputStream iStream=null;OutputStream oStream=null;String realPath = request.getSession().getServletContext().getRealPath("/imgs");//得到一個隨機的字符串String string = UUID.randomUUID().toString();String endname = filename.substring(filename.lastIndexOf("."), filename.length());/*try {is = pic.getInputStream();os = new FileOutputStream(new File(realpath+"/"+uuid+endname));//要把文件輸出到硬盤上,第一種方式:自己寫字節流 并通過邊讀邊寫操作完成輸出byte [] b = new byte[1024];int len = is.read(b);while(len!=-1){os.write(b, 0, len);len = is.read(b);}os.flush();os.close();is.close();} catch (IOException e) {e.printStackTrace();}*///通過commons-io包提供的工具來完成拷貝try {iStream=pic.getInputStream();oStream=new FileOutputStream(new File(realPath+"/"+string+endname));FileCopyUtils.copy(iStream, oStream);oStream.flush();oStream.close();iStream.close();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}System.out.println("文件保存路徑:"+realPath+"/"+string+endname+"....");return "index";}

?

轉載于:https://www.cnblogs.com/dztHome/p/8929902.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251880.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251880.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251880.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL via EF6 的試用報告

MySQL via EF6 的試用報告1、如何通過 EF6 來連接 MySQL&#xff1f;2、如何通過 EF6 來實現 CRUD&#xff1f;2.1、Create 添加2.2、Retrieve 查詢2.3、Update 修改2.4、Delete 刪除3、如何更好的運用 EF6 來完成工作&#xff1f;3.1、傳說中 EF 的三種模式3.2、EF6 執行原生 …

Java暑假作業

一.《大護法》觀影有感 ... 從預告開始就期待著這部影片&#xff0c;在看過一遍后又忍不住二刷&#xff0c;影片觀看至第二遍后&#xff0c;對于全片的脈絡也更清晰了一點&#xff0c;雖然打著暴力美學的旗子&#xff0c;但《大護法》偏偏更文藝一些。文藝片是沒有對錯的&a…

使用EasyNetQ組件操作RabbitMQ消息隊列服務

RabbitMQ是一個由erlang開發的AMQP(Advanved Message Queue)的開源實現&#xff0c;是實現消息隊列應用的一個中間件&#xff0c;消息隊列中間件是分布式系統中重要的組件&#xff0c;主要解決應用耦合&#xff0c;異步消息&#xff0c;流量削鋒等問題。實現高性能&#xff0c;…

context-param和init-param的區別

http://www.cnblogs.com/hzj-/articles/1689836.html 轉載于:https://www.cnblogs.com/wangc04/p/7501054.html

TensorFlow 1.12.2 發布,修復 GIF 構造安全漏洞

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; TensorFlow 1.12.2 發布了&#xff0c;此處本修復了一個潛在的安全漏洞&#xff1a; 精心設計的 GIF 圖像可以在解碼過程中產生空指針解引用更新說明&#xff1a; https://github.com/tensorflo…

【教程】如何在標簽打印工具TFORMer Designer中自定義布局?

TEC-IT的在線標簽生成器TFORMer Designer提供標簽打印服務&#xff0c;并提供即用型行業標簽模板作為Web服務。使用此軟件&#xff0c;您可以在幾秒鐘內創建您自己的標簽和表格或在工業和物流業中使用即時可用的模板。TFORMer Designer的最新更新現在允許使用自定義標簽布局。 …

對象變為指定格式的數組

拿到的對象的格式&#xff08;一個對象里面都好多屬性&#xff09; 想要轉換成的數據格式&#xff08;一個數組里面有好多個對象&#xff0c;每個對象有一個id和name的屬性&#xff09; 如何處理的 selectionChange(val) { // 列表選擇var dynamicTags1 [];var arr[]for(var i…

bootstrapValidator remote 驗證問題

1 加載jQuery和bootstrap.min.js 后引入bootstrapValidator.min.js字段驗證之remote 遠程驗證(類似ajax驗證)&#xff0c;返回值必須是 {"valid":true}{"valid":false} true表示 驗證通過 false 表示驗證不通過。 當添加remote 驗證后&#xff0c;驗證通過…

世界頂級的程序員們告訴你:這些書都是你應該讀的

在很早之前就想整理一份來自經驗豐富的頂級程序員推薦閱讀的書籍清單&#xff0c;全棧工程師Dmitry Shvetsov整理了Bob叔以及Jeff Atwood and DHH等世界知名程序員曾經在博客中推薦過的書單&#xff0c;下面我們就一起來看看深受大神們青睞的書籍都是哪些?世界頂級的程序員們告…

《20170911-構建之法:現代軟件工程-閱讀筆記》

第一章&#xff1a; 介紹軟件工程和軟件的關系&#xff0c;軟件程序軟件工程。 軟件工程是把系統的、有序的、可量化的方法應用到軟件的開發、運營和維護上的過程。 計算機科學這一學術領域可以分為以下這些偏理論的領域&#xff1a; 1.計算機理論 2.信息和編碼理論 3.算法和數…

mysql學習(2)索引的本質

2019獨角獸企業重金招聘Python工程師標準>>> 問題&#xff1a;SQL查詢慢怎么辦&#xff1f; 優化手段&#xff0c;加索引。 索引是幫助MYSQL高效的獲取數據的排好序的數據結構。 問題&#xff1a;索引結構為什么使用Btree而不使用二叉樹&#xff0c;紅黑樹或者HASH結…

bzoj4245: [ONTAK2015]OR-XOR

一道很有意思的題目。 先求一次前綴和&#xff0c;可以發現答案是 (sum[0] xor sum[x1])or(sum[x1] xor sum[x2])or(sum[x2] xor sum[x3])or……or(sum[m-1] xor sum[n]) 然后其實&#xff08;a xor b&#xff09;or b a or b 那么sum[0]0,可以把柿子變成 sum[x1] or sum[x2] o…

移動端常見的一些兼容性問題

1、安卓瀏覽器看背景圖片&#xff0c;有些設備會模糊。 是devicePixelRatio作怪&#xff0c;因為手機分辨率太小&#xff0c;如果按照分辨率來顯示網頁&#xff0c;這樣字會非常小&#xff0c;所以蘋果當初就把iPhone 4的960*640分辨率&#xff0c;在網頁里只顯示了480*320&…

go-變量

這次我們學習一下golang語言 gitee: go-study 定義 定義的變量或者函數必須用到(pakeage內的全局除外) var a int // 默認為0 var b string //默認為"" fmt.Printf("%d %q\n",a, s) 復制代碼直接定義可以不寫類型(int..)go會自行判斷 var a, b 3, 4 var …

CSS3:CSS3 文本效果

ylbtech-CSS3&#xff1a;CSS3 文本效果1.返回頂部 1、CSS3 文本效果 CSS3 文本效果 CSS3中包含幾個新的文本特征。 在本章中您將了解以下文本屬性&#xff1a; text-shadowbox-shadowtext-overflowword-wrapword-break瀏覽器支持 屬性 text-shadow4.010.03.54.09.5box-sha…

洛谷 P2296 尋找道路

題目描述 在有向圖G 中&#xff0c;每條邊的長度均為1 &#xff0c;現給定起點和終點&#xff0c;請你在圖中找一條從起點到終點的路徑&#xff0c;該路徑滿足以下條件&#xff1a; 1 &#xff0e;路徑上的所有點的出邊所指向的點都直接或間接與終點連通。 2 &#xff0e;在滿足…

Feature Preprocessing on Kaggle

剛入手data science, 想著自己玩一玩kaggle&#xff0c;玩了新手Titanic和House Price的 項目, 覺得基本的baseline還是可以寫出來&#xff0c;但是具體到一些細節&#xff0c;以至于到能拿到的出手的成績還是需要理論分析的。 本文旨在介紹kaggle比賽到各種原理與技巧&#xf…

十天沖刺-04

昨天&#xff1a;完成了日歷界面的部署&#xff0c;并且能夠獲取到選中的日期 今天&#xff1a;完成根據日期查找消費記錄功能 問題&#xff1a;日歷界面占用屏幕太多&#xff0c;后期會進行調整轉載于:https://www.cnblogs.com/liujinxin123/p/10760254.html

構建Spring Boot程序有用的文章

構建Spring Boot程序有用的文章&#xff1a; http://www.jb51.net/article/111546.htm轉載于:https://www.cnblogs.com/xiandedanteng/p/7508334.html

如果您遇到文件或數據庫問題,如何重置Joomla

2019獨角獸企業重金招聘Python工程師標準>>> 如果您遇到Joomla站點的問題&#xff0c;那么重新安裝其核心文件和數據庫可能是最佳解決方案。 了解問題 這種方法無法解決您的所有問題。但它主要適用于由Joomla核心引起的問題。 運行Joomla核心更新后&#xff0c;這些…