日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Javaweb中上传图片,获取相对路径,绝对路径

發(fā)布時(shí)間:2024/1/8 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javaweb中上传图片,获取相对路径,绝对路径 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

標(biāo)題:Javaweb中上傳圖片,獲取相對(duì)路徑,絕對(duì)路徑

實(shí)際上獲取的是絕對(duì)路徑,不過(guò)通過(guò)瀏覽器查看到的不會(huì)是絕對(duì)路徑,而是被瀏覽器保護(hù)好,給你看到的一個(gè)假的路徑,而我們要做的就是獲取圖片的名字即可,人為的添加一個(gè)路徑,同時(shí)寫(xiě)入到數(shù)據(jù)庫(kù)中一個(gè)相對(duì)路徑即可

最后的圖片保存的絕對(duì)路徑【不是圖片原來(lái)的絕對(duì)路徑】,

E:\eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\itcaststore\productImg\11\1

相對(duì)路徑【數(shù)據(jù)庫(kù)中使用相對(duì)路徑,使得可以在瀏覽器中顯示圖片,而使用絕對(duì)路徑,在瀏覽器中顯示不了圖片,只能在eclipse中的內(nèi)置瀏覽器中顯示圖片】:

/productImg/11/1/fec068b5-afd0-4d45-b31b-0f7cddf4f25b.jpg

具體操作:

package cn.itcast.itcaststore.web.servlet.manager; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.io.IOUtils; import cn.itcast.itcaststore.domain.Product; import cn.itcast.itcaststore.exception.AddProductException; import cn.itcast.itcaststore.service.ProductService; import cn.itcast.itcaststore.utils.FileUploadUtils; import cn.itcast.itcaststore.utils.IdUtils; /*** 后臺(tái)系統(tǒng)* 用于添加商品的servlet*/ public class AddProductServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 創(chuàng)建javaBean,將上傳數(shù)據(jù)封裝.Product p = new Product();Map<String, String> map = new HashMap<String, String>();// 封裝商品idmap.put("id", IdUtils.getUUID());DiskFileItemFactory dfif = new DiskFileItemFactory();// 設(shè)置臨時(shí)文件存儲(chǔ)位置dfif.setRepository(new File(this.getServletContext().getRealPath("/temp")));// 設(shè)置上傳文件緩存大小為10mdfif.setSizeThreshold(1024 * 1024 * 10);// 創(chuàng)建上傳組件ServletFileUpload upload = new ServletFileUpload(dfif);// 處理上傳文件中文亂碼upload.setHeaderEncoding("utf-8");try {// 解析request得到所有的FileItemList<FileItem> items = upload.parseRequest(request);// 遍歷所有FileItemfor (FileItem item : items) {// 判斷當(dāng)前是否是上傳組件if (item.isFormField()) {// 不是上傳組件String fieldName = item.getFieldName(); // 獲取組件名稱String value = item.getString("utf-8"); // 解決亂碼問(wèn)題map.put(fieldName, value);} else {// 是上傳組件// 得到上傳文件真實(shí)名稱String fileName = item.getName();fileName = FileUploadUtils.subFileName(fileName);// 得到隨機(jī)名稱String randomName = FileUploadUtils.generateRandonFileName(fileName);// 得到隨機(jī)目錄String randomDir = FileUploadUtils.generateRandomDir(randomName);// 圖片存儲(chǔ)父目錄String imgurl_parent = "/productImg" + randomDir;File parentDir = new File(this.getServletContext().getRealPath(imgurl_parent));// 驗(yàn)證目錄是否存在,如果不存在,創(chuàng)建出來(lái)if (!parentDir.exists()) {parentDir.mkdirs();}String imgurl = imgurl_parent + "/" + randomName;map.put("imgurl", imgurl);IOUtils.copy(item.getInputStream(), new FileOutputStream(new File(parentDir, randomName)));item.delete();}}} catch (FileUploadException e) {e.printStackTrace();}try {// 將數(shù)據(jù)封裝到j(luò)avaBean中BeanUtils.populate(p, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}ProductService service = new ProductService();try {// 調(diào)用service完成添加商品操作service.addProduct(p);response.sendRedirect(request.getContextPath()+ "/listProduct");return;} catch (AddProductException e) {e.printStackTrace();response.getWriter().write("添加商品失敗");return;}} } <%@ page language="java" pageEncoding="UTF-8"%> <HTML> <HEAD><meta http-equiv="Content-Language" content="zh-cn"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><LINK href="${pageContext.request.contextPath}/admin/css/Style.css" type="text/css" rel="stylesheet"> </HEAD> <body><form id="userAction_save_do" name="Form1"action="${pageContext.request.contextPath}/addProduct" method="post"enctype="multipart/form-data">&nbsp;<table cellSpacing="1" cellPadding="5" width="100%" align="center"bgColor="#eeeeee" style="border: 1px solid #8ba7e3" border="0"><tr><td class="ta_01" align="center" bgColor="#afd1f3" colSpan="4"height="26"><strong><STRONG>添加商品</STRONG> </strong></td></tr><tr><td align="center" bgColor="#f5fafe" class="ta_01">商品名稱:</td><td class="ta_01" bgColor="#ffffff"><input type="text" name="name" class="bg" /></td><td align="center" bgColor="#f5fafe" class="ta_01">商品價(jià)格:</td><td class="ta_01" bgColor="#ffffff"><input type="text" name="price" class="bg" /></td></tr><tr><td align="center" bgColor="#f5fafe" class="ta_01">商品數(shù)量:</td><td class="ta_01" bgColor="#ffffff"><input type="text" name="pnum" class="bg" /></td><td align="center" bgColor="#f5fafe" class="ta_01">商品類(lèi)別:</td><td class="ta_01" bgColor="#ffffff"><select name="category" id="category"><option value="" selected="selected">--選擇商品類(lèi)加--</option><option value="文學(xué)">文學(xué)</option><option value="生活">生活</option><option value="計(jì)算機(jī)">計(jì)算機(jī)</option><option value="外語(yǔ)">外語(yǔ)</option><option value="經(jīng)營(yíng)">經(jīng)營(yíng)</option><option value="勵(lì)志">勵(lì)志</option><option value="社科">社科</option><option value="學(xué)術(shù)">學(xué)術(shù)</option><option value="少兒">少兒</option><option value="藝術(shù)">藝術(shù)</option><option value="原版">原版</option><option value="科技">科技</option><option value="考試">考試</option><option value="生活百科">生活百科</option></select></td></tr><tr><td align="center" bgColor="#f5fafe" class="ta_01">商品圖片:</td><td class="ta_01" bgColor="#ffffff" colspan="3"><input type="file" name="upload" size="30" value="" /></td></tr><TR><TD class="ta_01" align="center" bgColor="#f5fafe">商品描述:</TD><TD class="ta_01" bgColor="#ffffff" colSpan="3"><textarea name="description" cols="30" rows="3" style="WIDTH: 96%"></textarea></TD></TR><TR><td align="center" colSpan="4" class="sep1"><imgsrc="${pageContext.request.contextPath}/admin/images/shim.gif"></td></TR><tr><td class="ta_01" style="WIDTH: 100%" align="center"bgColor="#f5fafe" colSpan="4"><input type="submit" class="button_ok" value="確定"> <FONT face="宋體">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><input type="reset" value="重置" class="button_cancel"> <FONT face="宋體">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT> <INPUT class="button_ok" type="button" onclick="history.go(-1)" value="返回" /><span id="Label1"></span></td></tr></table></form> </body> </HTML>

總結(jié)

以上是生活随笔為你收集整理的Javaweb中上传图片,获取相对路径,绝对路径的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。