溫馨提示×

溫馨提示×

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

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

利用springboot怎么對圖片進行上傳

發布時間:2020-12-15 15:16:17 來源:億速云 閱讀:363 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關利用springboot怎么對圖片進行上傳,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

步驟一:基于前面springboot入門小demo

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

步驟二:創建uploadPage.jsp上傳頁面  

  在jsp目錄下新建uploadPage.jsp,需要幾點:
  1. method="post" 是必須的
  2. enctype="multipart/form-data" 是必須的,表示提交二進制文件
  3. name="file" 是必須的,和后續服務端對應
  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>

步驟三:創建UploadController.java

  因為uploadPage.jsp在WEB-INF下,不能直接從瀏覽器訪問,所以要在這里加一個uploadPage跳轉,這樣就可以通過。

  測試訪問頁面:http://127.0.0.1:8080/uploadPage

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

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 {
  // 因為uploadPage.jsp 在WEB-INF下,不能直接從瀏覽器訪問,所以要在這里加一個uploadPage跳轉,這樣就可以通過
  @RequestMapping("/uploadPage")
  public String uploadPage() {
    return "uploadPage";  //過度跳轉頁
  }

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

    return "showImg";
  }
}

步驟四:創建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文件夾下面,如果看不到,就刷新一哈。

  所以通過這個 <img src="/uploaded/${fileName}"> 鏈接,就可以訪問到圖片。

步驟五:修改application.properties

  設置上傳文件的大小,默認是1m,太小了,文件稍微大一點就會出錯

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

步驟六:測試

  訪問測試地址:http://127.0.0.1:8080/uploadPage

利用springboot怎么對圖片進行上傳

  上傳成功后,跳轉到showImg.jsp訪問圖片資源。

看完上述內容,你們對利用springboot怎么對圖片進行上傳有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女