麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開發(fā) > Java > 正文

java實(shí)現(xiàn)簡(jiǎn)單圖片上傳下載功能

2024-07-14 08:42:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了java實(shí)現(xiàn)簡(jiǎn)單圖片上傳下載的具體代碼,供大家參考,具體內(nèi)容如下

1.首先在上傳圖片界面:將form表單的enctype改為:multipart/form-data

2.定義一個(gè)實(shí)體類用來(lái)將存放圖片存放的路徑存入到mysql中private String imgpath;

3.在spring容器中注入處理圖片的解析器

<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 設(shè)置默認(rèn)編碼 -->     <property name="defaultEncoding" value="utf-8"></property>     <!-- 上傳圖片最大大小5M-->      <property name="maxUploadSize" value="5242440"></property> </bean>

4.在controller層接收的時(shí)候需要用 @RequestParam("file") CommonsMultipartFile file來(lái)接收,如果是多個(gè)圖片就是@RequestParam("file") CommonsMultipartFile[] files來(lái)接收

5.通過(guò)工具類處理返回要存入實(shí)體類的圖片的路徑

public class FileUpUtil {  /** * 上傳多個(gè)文件或圖片上傳在項(xiàng)目路徑下的img文件夾在 * !!!!!!重新部署項(xiàng)目實(shí)效,因?yàn)槲募A被刪除 * @param files * @param request * @return */ public static List<String> upfiles(CommonsMultipartFile files[],HttpServletRequest request){  List<String> list = new ArrayList<String>();      // 獲得項(xiàng)目的路徑      ServletContext sc = request.getSession().getServletContext();      // 上傳位置      String path = sc.getRealPath("/img") + File.separatorChar; // 設(shè)定文件保存的目錄      File f = new File(path);      if (!f.exists())        f.mkdirs();          for (int i = 0; i < files.length; i++) {        // 獲得原始文件名        String fileName = files[i].getOriginalFilename();        System.out.println("原始文件名:" + fileName);        // 新文件名        String newFileName = UUID.randomUUID() + fileName;        if (!files[i].isEmpty()) {          try {            FileOutputStream fos = new FileOutputStream(path                + newFileName);            InputStream in = files[i].getInputStream();            int b = 0;            while ((b = in.read()) != -1) {              fos.write(b);            }            fos.close();            in.close();          } catch (Exception e) {            e.printStackTrace();          }        }        System.out.println("上傳圖片到:" + path + newFileName);        list.add("img/"+newFileName);     }      return list; } /** * 上傳一個(gè)文件或圖片 * 上傳多個(gè)文件或圖片上傳在項(xiàng)目路徑下的img文件夾在 * !!!!!!重新部署項(xiàng)目實(shí)效,因?yàn)槲募A被刪除 * @param file * @param request * @return */ public static String upfile(CommonsMultipartFile file,HttpServletRequest request){  // 獲得項(xiàng)目的路徑     ServletContext sc = request.getSession().getServletContext();     // 上傳位置     String path = sc.getRealPath("/img") + File.separatorChar; // 設(shè)定文件保存的目錄     File f = new File(path);     if (!f.exists())       f.mkdirs();       // 獲得原始文件名       String fileName = file.getOriginalFilename();       System.out.println("原始文件名:" + fileName);       // 新文件名       String newFileName = UUID.randomUUID() + fileName;       if (!file.isEmpty()) {         try {           FileOutputStream fos = new FileOutputStream(path               + newFileName);           InputStream in = file.getInputStream();           int b = 0;           while ((b = in.read()) != -1) {             fos.write(b);           }           fos.close();           in.close();         } catch (Exception e) {           e.printStackTrace();         }       }       System.out.println("上傳圖片到:" + path + newFileName);       return "img/"+newFileName; }  /** * 下載 * @param request * @param response * @param filename * @return */ public static void downFile(HttpServletRequest request,       HttpServletResponse response,String filename) {     // 得到要下載的文件名     String fileName = filename.substring(4);    try {       fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8");       // 獲取上傳文件的目錄       ServletContext sc = request.getSession().getServletContext();       // 上傳位置       String fileSaveRootPath = sc.getRealPath("/img");               System.out.println(fileSaveRootPath + "//" + fileName);       // 得到要下載的文件       File file = new File(fileSaveRootPath + "//" + fileName);              // 如果文件不存在       if (!file.exists()) {         request.setAttribute("message", "您要下載的資源已被刪除!!");         System.out.println("您要下載的資源已被刪除!!");         return ;       }       // 處理文件名       String realname = fileName.substring(fileName.indexOf("_") + 1);       // 設(shè)置響應(yīng)頭,控制瀏覽器下載該文件       response.setHeader("content-disposition", "attachment;filename="           + URLEncoder.encode(realname, "UTF-8"));       // 讀取要下載的文件,保存到文件輸入流       FileInputStream in = new FileInputStream(fileSaveRootPath + "//" + fileName);       // 創(chuàng)建輸出流       OutputStream out = response.getOutputStream();       // 創(chuàng)建緩沖區(qū)       byte buffer[] = new byte[1024];       int len = 0;       // 循環(huán)將輸入流中的內(nèi)容讀取到緩沖區(qū)當(dāng)中       while ((len = in.read(buffer)) > 0) {         // 輸出緩沖區(qū)的內(nèi)容到瀏覽器,實(shí)現(xiàn)文件下載         out.write(buffer, 0, len);       }       // 關(guān)閉文件輸入流       in.close();       // 關(guān)閉輸出流       out.close();     } catch (Exception e) {     }   } }

6.存入之后在jsp頁(yè)面通過(guò)img標(biāo)簽顯示<img alt="img" src="//數(shù)據(jù)庫(kù)中存入的路徑"  width="100">

7.下載就是將圖片的路徑傳入controller層中一個(gè)方法,調(diào)用工具類中的downFile方法,就可以了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美囗交| www久| 欧美日韩大片在线观看 | 有色视频在线观看 | 91社区电影| 久久久久一本一区二区青青蜜月 | 一级精品 | 国产资源视频在线观看 | 欧美三级日本三级少妇99 | 国产精品午夜未成人免费观看 | 视频一区二区在线观看 | 黄色片网站免费在线观看 | 国产在线精品一区二区不卡 | 国产亚洲精品久久久久久久 | 欧美2区| 国产91中文字幕 | 91九色福利| 久久久久久久久久久av | 免费色片 | 99亚洲伊人久久精品影院红桃 | 毛片视频播放 | 大学生一级毛片在线视频 | 精品国产一区三区 | 色七七亚洲 | 欧美 国产 综合 | 国产免费专区 | 欧美a在线看 | 午夜在线成人 | 精品无吗乱吗av国产爱色 | 亚洲人成网在线观看 | 成品片a免人视频 | 欧美日韩视频在线播放 | 免费三级大片 | 77成人影院 | 大片毛片| 91一区二区三区久久久久国产乱 | 成人黄色短视频在线观看 | 国产精品嘿咻嘿咻在线播放 | 插插操| 成人情欲视频在线看免费 | 精品国产看高清国产毛片 |