SpringMVC上傳圖片與訪問(wèn)
關(guān)于springmvc上傳圖片的方法小編給大家整理了兩種方法,具體內(nèi)容如下所示:
第一種:(放在該項(xiàng)目下的物理地址對(duì)應(yīng)的位置)
a. 路徑寫(xiě)法:
String basePath="/WEB-INF/resources/upload";
String filePathName= request.getSession().getServletContext().getRealPath(basePath);存放路徑
b. 實(shí)際路徑:
D:\WorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XYT\WEB-INF\resources\upload\圖片名稱
c. 訪問(wèn)路徑: http://localhost:8080/XYT/resources/upload/圖片名稱
d. 前提:只要這個(gè)項(xiàng)目能運(yùn)行就行。
第二種:(創(chuàng)建虛擬路徑,配置Tomcat下server.xml,創(chuàng)建存儲(chǔ)路徑和訪問(wèn)路徑)
1.路徑寫(xiě)法:
String filePathName=Constant.IMG_PATH+File.separator+"upload";
其中:public static final String IMG_PATH = "E:\\Java\\img";
2.路徑配置:
Server.xml配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <!-- add(save pictures) --> <Context path="/upload" docBase="E:\Java\img\upload"></Context> </Host>
3.實(shí)際路徑:E:\Java\img\upload
4.訪問(wèn)路徑:http://localhost:8080/upload/圖片名稱
5.參考:http://my.oschina.net/pingdy/blog/381001
6.前提:必須打開(kāi)Tomcat服務(wù)器
舉例:上傳圖片的實(shí)例:(可以上傳多張圖片)
JSONObject rs=new JSONObject();
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
String url="";
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file = multiRequest.getFile((String) iter.next());
if (file != null) {
String originalFileName = file.getOriginalFilename();
String[] f = originalFileName.split("\\.");
String ext = "";
if(f!=null && f.length>1){
ext = f[f.length-1];
System.out.println(ext);
}
System.out.println(allowImgType==null);
if(!allowImgType.contains(ext.toUpperCase())){
rs.put("code", "ERR_UPLOAD_0003");
rs.put("msg", "類型錯(cuò)誤");
return rs;
}
//String basePath="/WEB-INF/resources/upload";//String filePathName = request.getSession().getServletContext().getRealPath(basePath);
String filePathName=Constant.IMG_PATH+File.separator+"upload";
url = filePathName;
System.out.println(url);
//上傳后記錄在path這個(gè)路徑下。
File localFile = new File(filePathName);
if(!localFile.exists()){
localFile.mkdir();
}
//compress
String fname =new Date().getTime()+"."+ext;
String originalFname = fname.substring(0,fname.indexOf("."))+"_original."+ext;
String fileName = filePathName + File.separator + fname;
String oFileName = filePathName + File.separator + originalFname;
File infile = new File(fileName);
File oFile = new File(oFileName);
try{
ImageHelper.compress(file.getInputStream(), 600, infile);
file.transferTo(oFile);//original 上傳原圖
JSONObject obj = new JSONObject();
rs.put("code", Constant.CODE_SUCCESS);
rs.put("data", obj.toString());
}catch(Exception e){
rs.put("code", "ERR_UPLOAD_0001");
rs.put("msg", "ERR_UPLOAD_0001");
e.printStackTrace();
return rs;
}
}
以上所述是針對(duì)SpringMVC上傳圖片與訪問(wèn)的相關(guān)內(nèi)容,希望對(duì)大家有所幫助。
- 詳解SpringMVC使用MultipartFile實(shí)現(xiàn)文件的上傳
- SpringMVC 文件上傳配置,多文件上傳,使用的MultipartFile的實(shí)例
- SpringMVC文件上傳 多文件上傳實(shí)例
- SpringMVC 上傳文件 MultipartFile 轉(zhuǎn)為 File的方法
- SpringMVC中MultipartFile上傳獲取圖片的寬度和高度詳解
- jquery.form.js框架實(shí)現(xiàn)文件上傳功能案例解析(springmvc)
- SpringMvc MultipartFile實(shí)現(xiàn)圖片文件上傳示例
- SpringMVC上傳和解析Excel方法
- SpringMVC+Ajax實(shí)現(xiàn)文件批量上傳和下載功能實(shí)例代碼
- SpringMVC按Ctrl上傳多個(gè)文件的方法
相關(guān)文章
SpringBoot實(shí)現(xiàn)微信支付接口調(diào)用及回調(diào)函數(shù)(商戶參數(shù)獲取)
本文詳細(xì)介紹了使用SpringBoot實(shí)現(xiàn)微信支付接口調(diào)用及回調(diào)函數(shù)的步驟,提供了代碼實(shí)現(xiàn)的具體步驟和工具類的創(chuàng)建,感興趣的朋友跟隨小編一起看看吧2024-11-11
IDEA 打開(kāi)java文件對(duì)應(yīng)的class路徑的操作步驟
這篇文章主要介紹了IDEA 打開(kāi)java文件對(duì)應(yīng)的class路徑的操作步驟,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Java實(shí)現(xiàn)計(jì)網(wǎng)循環(huán)冗余檢驗(yàn)算法的方法示例
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)計(jì)網(wǎng)循環(huán)冗余檢驗(yàn)算法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Sping?Security前后端分離兩種實(shí)戰(zhàn)方案
這篇文章主要介紹了Sping?Security前后端分離兩種方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
SpringBoot使用mybatis-plus分頁(yè)查詢無(wú)效的問(wèn)題解決
MyBatis-Plus提供了很多便捷的功能,包括分頁(yè)查詢,本文主要介紹了SpringBoot使用mybatis-plus分頁(yè)查詢無(wú)效的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12

