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

springboot上傳圖片文件步驟詳解

 更新時(shí)間:2020年12月15日 14:38:10   作者:仰望星空的腳踏實(shí)地  
這篇文章主要介紹了springboot上傳圖片文件步驟詳解,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

步驟一:基于前面springboot入門(mén)小demo

  基于的springboot入門(mén)小demo,已包含了前面文章的知識(shí)點(diǎn)(比如:熱部署、全局異常處理器)。

步驟二:創(chuàng)建uploadPage.jsp上傳頁(yè)面  

  在jsp目錄下新建uploadPage.jsp,需要幾點(diǎn):
  1. method="post" 是必須的
  2. enctype="multipart/form-data" 是必須的,表示提交二進(jìn)制文件
  3. name="file" 是必須的,和后續(xù)服務(wù)端對(duì)應(yīng)
  4. accept="image/*" 表示只選擇圖片

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>圖片上傳</title>
</head>
<body>
  <form action="upload" method="post" enctype="multipart/form-data">
    選擇圖片:<input type="file" name="file" accept="image/*" /> <br>
    <input type="submit" value="立刻上傳">
  </form>
</body>
</html>

步驟三:創(chuàng)建UploadController.java

  因?yàn)閡ploadPage.jsp在WEB-INF下,不能直接從瀏覽器訪問(wèn),所以要在這里加一個(gè)uploadPage跳轉(zhuǎn),這樣就可以通過(guò)。

  測(cè)試訪問(wèn)頁(yè)面:http://127.0.0.1:8080/uploadPage

  訪問(wèn)到uploadPage.jsp頁(yè)面了(只是可以訪問(wèn),還不能上傳)。

package cn.xdf.springboot.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

@Controller
public class UploadController {
  // 因?yàn)閡ploadPage.jsp 在WEB-INF下,不能直接從瀏覽器訪問(wèn),所以要在這里加一個(gè)uploadPage跳轉(zhuǎn),這樣就可以通過(guò)
  @RequestMapping("/uploadPage")
  public String uploadPage() {
    return "uploadPage";  //過(guò)度跳轉(zhuǎn)頁(yè)
  }

  @PostMapping("/upload") // 等價(jià)于 @RequestMapping(value = "/upload", method = RequestMethod.POST)
  public String uplaod(HttpServletRequest req, @RequestParam("file") MultipartFile file, Model m) {//1. 接受上傳的文件 @RequestParam("file") MultipartFile file
    try {
      //2.根據(jù)時(shí)間戳創(chuàng)建新的文件名,這樣即便是第二次上傳相同名稱(chēng)的文件,也不會(huì)把第一次的文件覆蓋了
      String fileName = System.currentTimeMillis() + file.getOriginalFilename();
      //3.通過(guò)req.getServletContext().getRealPath("") 獲取當(dāng)前項(xiàng)目的真實(shí)路徑,然后拼接前面的文件名
      String destFileName = req.getServletContext().getRealPath("") + "uploaded" + File.separator + fileName;
      //4.第一次運(yùn)行的時(shí)候,這個(gè)文件所在的目錄往往是不存在的,這里需要?jiǎng)?chuàng)建一下目錄(創(chuàng)建到了webapp下uploaded文件夾下)
      File destFile = new File(destFileName);
      destFile.getParentFile().mkdirs();
      //5.把瀏覽器上傳的文件復(fù)制到希望的位置
      file.transferTo(destFile);
      //6.把文件名放在model里,以便后續(xù)顯示用
      m.addAttribute("fileName", fileName);
    } catch (FileNotFoundException e) {
      e.printStackTrace();
      return "上傳失敗," + e.getMessage();
    } catch (IOException e) {
      e.printStackTrace();
      return "上傳失敗," + e.getMessage();
    }

    return "showImg";
  }
}

步驟四:創(chuàng)建showImg.jps

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>上傳圖片</title>
</head>
<body>
  <img src="/uploaded/${fileName}">
</body>
</html>

  文件最終上傳到webapp下面的uploaded文件夾下面,如果看不到,就刷新一哈。

  所以通過(guò)這個(gè) <img src="/uploaded/${fileName}"> 鏈接,就可以訪問(wèn)到圖片。

步驟五:修改application.properties

  設(shè)置上傳文件的大小,默認(rèn)是1m,太小了,文件稍微大一點(diǎn)就會(huì)出錯(cuò)

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=100Mb

步驟六:測(cè)試

  訪問(wèn)測(cè)試地址:http://127.0.0.1:8080/uploadPage

  上傳成功后,跳轉(zhuǎn)到showImg.jsp訪問(wèn)圖片資源。

 ?。吹矫琅?,就比較精神?。。。?/p>

到此這篇關(guān)于springboot上傳圖片文件步驟詳解的文章就介紹到這了,更多相關(guān)springboot上傳圖片文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Jvisualvm監(jiān)控遠(yuǎn)程SpringBoot項(xiàng)目的過(guò)程詳解

    Jvisualvm監(jiān)控遠(yuǎn)程SpringBoot項(xiàng)目的過(guò)程詳解

    這篇文章主要介紹了Jvisualvm監(jiān)控遠(yuǎn)程SpringBoot項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • java 防盜鏈詳解及解決辦法

    java 防盜鏈詳解及解決辦法

    這篇文章主要介紹了 java 防盜鏈詳解及解決辦法的相關(guān)資料,這里介紹了防盜鏈的概念、產(chǎn)生原因及Http中的referer,最后介紹解決辦法,需要的朋友可以參考下
    2017-07-07
  • Java使用JXLS導(dǎo)出Excel詳解

    Java使用JXLS導(dǎo)出Excel詳解

    jxls是一個(gè)輕量級(jí)的Java庫(kù),用于基于模板的Excel報(bào)表生成,這篇文章主要為大家介紹了Java如何使用JXLS導(dǎo)出Excel,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • java文本處理之計(jì)算文本句子數(shù)

    java文本處理之計(jì)算文本句子數(shù)

    這篇文章主要為大家詳細(xì)介紹了java文本處理之計(jì)算文本句子數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java中的SimpleDateFormat的線程安全問(wèn)題詳解

    Java中的SimpleDateFormat的線程安全問(wèn)題詳解

    這篇文章主要介紹了Java中的SimpleDateFormat的線程安全問(wèn)題詳解,sonar 是一個(gè)代碼質(zhì)量管理工具,SonarQube是一個(gè)用于代碼質(zhì)量管理的開(kāi)放平臺(tái),為項(xiàng)目提供可視化報(bào)告, 連續(xù)追蹤項(xiàng)目質(zhì)量演化過(guò)程,需要的朋友可以參考下
    2024-01-01
  • SpringBoot讀取配置文件的五種方法總結(jié)

    SpringBoot讀取配置文件的五種方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了SpringBoot讀取配置文件的五種方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)SpringBoot有一定幫助,需要的可以參考一下
    2022-08-08
  • SpringBoot JPA使用配置過(guò)程詳解

    SpringBoot JPA使用配置過(guò)程詳解

    這篇文章主要介紹了SpringBoot JPA使用配置過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • spring boot 開(kāi)發(fā)soap webservice的實(shí)現(xiàn)代碼

    spring boot 開(kāi)發(fā)soap webservice的實(shí)現(xiàn)代碼

    這篇文章主要介紹了spring boot 開(kāi)發(fā)soap webservice的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • IDEA插件Statistic統(tǒng)計(jì)代碼快速分辨爛項(xiàng)目

    IDEA插件Statistic統(tǒng)計(jì)代碼快速分辨爛項(xiàng)目

    這篇文章主要為大家介紹了使用IDEA插件Statistic來(lái)統(tǒng)計(jì)項(xiàng)目代碼,幫助大家快速識(shí)別出爛項(xiàng)目,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-01-01
  • Java中十六進(jìn)制和十進(jìn)制之間互相轉(zhuǎn)換代碼示例

    Java中十六進(jìn)制和十進(jìn)制之間互相轉(zhuǎn)換代碼示例

    這篇文章主要給大家介紹了關(guān)于Java中十六進(jìn)制和十進(jìn)制之間互相轉(zhuǎn)換的相關(guān)資料,我們項(xiàng)目過(guò)程中總是要用到十進(jìn)制與十六進(jìn)制相互轉(zhuǎn)換的方法,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

永靖县| 西华县| 克拉玛依市| 梨树县| 阳原县| 威宁| 长葛市| 浦东新区| 新密市| 阿克苏市| 德兴市| 鄂伦春自治旗| 龙岩市| 从化市| 宜君县| 香格里拉县| 买车| 朔州市| 凤凰县| 许昌县| 霍山县| 龙陵县| 巴青县| 吉安市| 锦州市| 玛多县| 酒泉市| 志丹县| 马尔康县| 岳普湖县| 忻城县| 开远市| 阳东县| 东阳市| 康乐县| 瓦房店市| 巴楚县| 尚志市| 上栗县| 星座| 北碚区|