最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ssm框架Springmvc文件上傳實(shí)現(xiàn)代碼詳解

 更新時(shí)間:2020年07月01日 10:19:47   作者:等你的夏天  
這篇文章主要介紹了ssm框架Springmvc文件上傳實(shí)現(xiàn)代碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、上傳:

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

<body>
<%--文件上傳
   1)method必須指定為post
   2)enctype必須指定為multipart/form-data
--%>
<h1>頭像上傳</h1>
<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)編寫(xiě)控制層代碼,獲取上傳的文件數(shù)據(jù),并保存MultipartFile;

//MultipartFile:用來(lái)接收上傳的文件,參數(shù)名與input的name一直
  //@SessionAttribute("admin"):獲取session域中的值
  //@RequestParam(required = false):指定對(duì)應(yīng)的參數(shù)可以為空,不是必須有值
  @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();//如果父目錄不存在,創(chuàng)建該目錄
    }
    //保存文件,將上傳的文件內(nèi)容寫(xiě)入file
    headpic.transferTo(file);
    admin=new Admin(id);
    //將頭像訪問(wèn)路徑保存到對(duì)象中
    admin.setHeadpic("/head/"+filename);
    //更新用戶(hù)頭像信息
    adminService.updateHeadPic(admin);
    return "redirect:list";
  }

3)在springmvc配置文件中配置文件上傳配置項(xiàng)。配置multipartResolver;

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

二、下載:

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

2) 讀取文件內(nèi)容到字節(jié)數(shù)組;

3) 返回字節(jié)數(shù)組,并聲明返回類(lèi)型為stream,設(shè)置附件名稱(chēng);

@GetMapping("/headPicDownload")
  public ResponseEntity<byte[]> headPicDownload(String filename) throws IOException {
    //1、定位到文件地址
    File file=new File("E:/headpic/"+filename);
    //2、讀取文件內(nèi)容
    byte[] bytes= FileUtils.readFileToByteArray(file);
    //3、設(shè)置http響應(yīng)頭
    HttpHeaders headers = new HttpHeaders();
    //設(shè)置ContentType為stream
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    //4、設(shè)置以附件形式打開(kāi)
    headers.setContentDispositionFormData("attachment",filename);
    //                內(nèi)容  頭部信息  http狀態(tài)碼
    return new ResponseEntity<byte[]>(bytes,headers, HttpStatus.CREATED);
  }
<td>
        <img style="width: 25px;height: 25px;border-radius: 50%;"
           src="${pageContext.request.contextPath}${admin.headpic}"/>
        <a href="${pageContext.request.contextPath}/admin/headPicDownload?filename=${fn:replace(admin.headpic," rel="external nofollow" /head/","" )}">下載</a>
      </td>

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

相關(guān)文章

  • Java讀取并下載網(wǎng)絡(luò)文件的方法

    Java讀取并下載網(wǎng)絡(luò)文件的方法

    這篇文章主要為大家詳細(xì)介紹了Java讀取并下載網(wǎng)絡(luò)文件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法

    spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法

    下面小編就為大家分享一篇spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • maven私服搭建的實(shí)現(xiàn)步驟

    maven私服搭建的實(shí)現(xiàn)步驟

    本文主要介紹了maven私服搭建的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 深入探究Java編程是值傳遞還是引用傳遞

    深入探究Java編程是值傳遞還是引用傳遞

    大家好,本篇文章主要講的是Java編程是值傳遞還是引用傳遞的探究,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-04-04
  • SpringBoot整合WebService的實(shí)戰(zhàn)案例

    SpringBoot整合WebService的實(shí)戰(zhàn)案例

    WebService是一個(gè)SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴(lài)于語(yǔ)言,平臺(tái)等,可以實(shí)現(xiàn)不同的語(yǔ)言間的相互調(diào)用,這篇文章主要給大家介紹了關(guān)于SpringBoot整合WebService的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • 2020 IDEA安裝教程與激活(idea2020激活碼)

    2020 IDEA安裝教程與激活(idea2020激活碼)

    這篇文章主要介紹了2020 IDEA安裝教程與激活(idea2020激活碼),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • java.io.UncheckedIOException: Cannot delete C:\Users\guo\AppData\Local\Temp\tomcat.8081問(wèn)題

    java.io.UncheckedIOException: Cannot delete C

    本文主要介紹了java.io.UncheckedIOException: Cannot delete C:\Users\guo\AppData\Local\Temp\tomcat.8081問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Mybatis plus通用字段自動(dòng)填充的示例

    Mybatis plus通用字段自動(dòng)填充的示例

    這篇文章主要介紹了Mybatis plus通用字段自動(dòng)填充的示例,幫助大家更好的理解和使用Mybatis,感興趣的朋友可以了解下
    2021-01-01
  • JNDI簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JNDI簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了JNDI簡(jiǎn)介,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • JVM類(lèi)加載機(jī)制詳解

    JVM類(lèi)加載機(jī)制詳解

    本文主要介紹了JVM類(lèi)加載機(jī)制的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02

最新評(píng)論

亚东县| 邹平县| 沐川县| 明水县| 云梦县| 若尔盖县| 平山县| 新乐市| 四子王旗| 辽源市| 四平市| 巩留县| 新营市| 泊头市| 上栗县| 宁乡县| 桂阳县| 余干县| 江城| 灌阳县| 连江县| 九龙县| 山东| 宁德市| 贵州省| 泸定县| 安庆市| 进贤县| 大埔县| 白玉县| 杂多县| 张家口市| 凤翔县| 苍溪县| 特克斯县| 饶阳县| 蓝山县| 屏南县| 常州市| 应用必备| 台前县|