中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用ssm框架實現Springmvc文件上傳

發布時間:2020-07-01 16:12:35 來源:億速云 閱讀:315 作者:清晨 欄目:開發技術

這篇文章將為大家詳細講解有關如何用ssm框架實現Springmvc文件上傳,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、上傳:

1)編寫前臺文件上傳表單。Method必須為post,enctype為mutipart/form-data

<body>
<%--文件上傳
   1)method必須指定為post
   2)enctype必須指定為multipart/form-data
--%>
<h2>頭像上傳</h2>
<form action="${pageContext.request.contextPath}/admin/headpic" method="post" enctype="multipart/form-data">
  選擇頭像:<input type="file" name="headpic"/>
<%--  ${param.屬性值}==request.getParameter(屬性值)--%>
  <input type="text" name="id" value="${param.id}">
  <input type="submit" value="上傳"/>
</form>
</body>

2)編寫控制層代碼,獲取上傳的文件數據,并保存MultipartFile;

//MultipartFile:用來接收上傳的文件,參數名與input的name一直
  //@SessionAttribute("admin"):獲取session域中的值
  //@RequestParam(required = false):指定對應的參數可以為空,不是必須有值
  @RequestMapping("/headpic")
  public String headPic(MultipartFile headpic,@RequestParam(required = false) Admin admin,Integer id) throws IOException {
    String filename = headpic.getOriginalFilename();
    System.out.println("上傳的文件名:"+filename);
    File file=new File("E:/headpic/"+filename);
    if (!file.getParentFile().exists()){
      file.getParentFile().mkdirs();//如果父目錄不存在,創建該目錄
    }
    //保存文件,將上傳的文件內容寫入file
    headpic.transferTo(file);
    admin=new Admin(id);
    //將頭像訪問路徑保存到對象中
    admin.setHeadpic("/head/"+filename);
    //更新用戶頭像信息
    adminService.updateHeadPic(admin);
    return "redirect:list";
  }

3)在springmvc配置文件中配置文件上傳配置項。配置multipartResolver;

  <!--配置文件上傳-->
  <bean id="multipartResolver"
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!--設置文件編碼格式-->
    <property name="defaultEncoding" value="UTF-8"/>
    <!--設置最大上傳大小-->
    <property name="maxUploadSize" value="10240000" />
  </bean>
<!--  資源映射,將請求地址映射到某個目錄或具體的磁盤路徑
   mapping:配置請求地址; location:配置文件路徑
   請求地址:/head/logo.png==>E:/headpic/logo.png
-->
  <mvc:resources mapping="/head/**" location="file:E:/headpic/"></mvc:resources>
<!--  請求地址為/headimg/logo.png==>/WEB-INF/img/logo.png-->
  <mvc:resources mapping="/headimg/**" location="/WEB-INF/img/"></mvc:resources>

二、下載:

1) 獲取到下載文件的路徑;

2) 讀取文件內容到字節數組;

3) 返回字節數組,并聲明返回類型為stream,設置附件名稱;

@GetMapping("/headPicDownload")
  public ResponseEntity<byte[]> headPicDownload(String filename) throws IOException {
    //1、定位到文件地址
    File file=new File("E:/headpic/"+filename);
    //2、讀取文件內容
    byte[] bytes= FileUtils.readFileToByteArray(file);
    //3、設置http響應頭
    HttpHeaders headers = new HttpHeaders();
    //設置ContentType為stream
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    //4、設置以附件形式打開
    headers.setContentDispositionFormData("attachment",filename);
    //                內容  頭部信息  http狀態碼
    return new ResponseEntity<byte[]>(bytes,headers, HttpStatus.CREATED);
  }
<td>
        <img 
           src="${pageContext.request.contextPath}${admin.headpic}"/>
        <a href="${pageContext.request.contextPath}/admin/headPicDownload&#63;filename=${fn:replace(admin.headpic," rel="external nofollow" /head/","" )}">下載</a>
      </td>

關于如何用ssm框架實現Springmvc文件上傳就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太仆寺旗| 蒲城县| 犍为县| 沙坪坝区| 清镇市| 五大连池市| 灵寿县| 晋宁县| 五常市| 巴中市| 望城县| 读书| 张家港市| 习水县| 华亭县| 巢湖市| 荥阳市| 浏阳市| 万年县| 衡东县| 屏南县| 卫辉市| 漳浦县| 新巴尔虎右旗| 惠来县| 垫江县| 图们市| 汕头市| 阳信县| 清河县| 洱源县| 依安县| 合江县| 婺源县| 砚山县| 东乌珠穆沁旗| 永清县| 阳西县| 高尔夫| 淮南市| 铜梁县|