1. 程式人生 > >springmvc-----圖片上傳

springmvc-----圖片上傳

點滴記載,點滴進步,願自己更上一層樓。

圖片上傳,首先需要兩個上傳圖片的jar包,新增到pom中。

    <!-- 圖片上傳相關 start -->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.2.2</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>
    <!-- 圖片上傳相關 end -->
然後配置springmvc對應的圖片上傳的解析器等。

springmvc.xml新增如下程式碼。

    <!-- 檔案上傳 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 設定圖片上傳最大尺寸 -->
        <property name="maxUploadSize">
            <!-- 5M -->
            <value>52428880</value>
        </property>

    </bean>

圖片上傳,form表單必須設定屬性    enctype="multipart/form-data"

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ 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">
<%@ page isELIgnored="false"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%-- enctype="multipart/form-data" 檔案上傳必須有這個 --%>
<form action="${pageContext.request.contextPath}/testImgUpload" method="post" enctype="multipart/form-data">
    姓名:<input type="text" name="name" value="${imageTestVo.name}"><br/><br/>
    年齡:<input type="text" name="age" value="${imageTestVo.age}"><br/><br/>
    <c:if test="${imageTestVo.img_src != null && imageTestVo.img_src != ''}">
        <img src="/pic/${imageTestVo.img_src}" width="100px",height="100px">
    </c:if>
    頭像:<input type="file" name="pic_src" ><br/><br/>
    <input type="submit"  value="submit"><br/><br/>
</form>

</body>
</html>
idea設定對應的圖片儲存路徑。

建好自己的儲存圖片的資料夾,我的   D:\java\myProject\pictmp

idea配置。

第一步開啟tomcat配置介面。

切換到Deployment   tab

然後選擇自己存放圖片的位置。

最後 application context那裡填寫pic   那個斜槓最好別去掉。注意上面的jsp的img路徑跟這裡的根路徑是對應的,別設定錯了。


到此tomcat存放圖片虛擬目錄設定完畢。

編寫一個vo   ImageTestVo.java

package com.soft.po;

/**
 * Created by xuweiwei on 2017/8/20.
 */
public class ImageTestVo {
    private String name;
    private Integer age;
    private String img_src;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getImg_src() {
        return img_src;
    }

    public void setImg_src(String img_src) {
        this.img_src = img_src;
    }
}
對應的controller資訊。  用MultipartFile來接收圖片資訊。  引數名字必須跟form中的名字對應。
package com.soft.controller;

import com.soft.po.ImageTestVo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import java.io.File;
import java.util.UUID;

/**
 * Created by xuweiwei on 2017/8/20.
 */
@Controller
public class TestImageController {

    @RequestMapping(value="/toImgUpload")
    public ModelAndView toImgUpload(ImageTestVo imageTestVo){
        ModelAndView model = new ModelAndView();
        // 將傳入繫結成功的引數在頁面顯示。
        model.setViewName("test/testImageUpload");
        return model;
    }

    @RequestMapping(value="/testImgUpload")
    public ModelAndView testImgUpload(ImageTestVo imageTestVo, MultipartFile pic_src){
        String originalFilename = pic_src.getOriginalFilename();
        if(pic_src != null && originalFilename !=null && originalFilename.length()>0){
            String filePath = "D:\\java\\myProject\\pictmp\\";
            String newFileName = UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf("."));
            File newFile = new File(filePath+newFileName);
            try{
                pic_src.transferTo(newFile);
            }catch (Exception e){

            }
            imageTestVo.setImg_src(newFileName);
        }
        ModelAndView model = new ModelAndView();
        model.addObject("imageTestVo",imageTestVo);
        // 將傳入繫結成功的引數在頁面顯示。
        model.setViewName("test/testImageUpload");
        return model;
    }
}
配置完畢,開始測試。

首先進入到圖片上傳的jsp。

填寫資訊,選擇圖片。


點選提交,到後臺。

前臺回顯

檢視本地資料夾已經存在了剛才上傳的圖片。


到此上傳圖片結束。

主要點就是:

  1 匯入jar依賴,

  2 配置圖片解析器,

 3 jsp  form提交表單的enctype="multipart/form-data"設定,

 4 用MultipartFile來接收圖片資訊。  引數名字必須跟form中的名字對應。

 5 設定本地的存圖片路徑

點滴記載,點滴進步,願自己更上一層樓。


相關推薦

springmvc圖片(兼容ie8以上,實時預覽)

處理 spa aps news time htm tip 技術分享 ans html代碼: <form id="uploadform" method="post" enctype="multipart/form-data"> <

springMVC圖片的處理方式

com add turn subst cor input gif格式 abs value 首先需要依賴的jar包: <dependency>   <groupId>commons-io</groupId>   <artifactI

SpringMVC圖片

io流 empty ext value utf mapping fileutil ann inf 一.form表單提交 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&

基於SpringMvc圖片

contex tex 需要 rop int https ppi quest 文件大小 1.導入jar包(m) <!-- 文件上傳組件 不同的版本號--> <dependency> <groupId>org.apache.com

springmvc圖片、jquery 圖片預覽

寬為限 緊用功 功夫到 滯塞通 簡介 專案需求,需要做圖片上傳功能,圖片上傳肯定得給個預覽嘛,然後就找了下面這個方案 ajaxfileupload外掛上傳 ajaxfileupload.js網上傳了好幾個版本,選擇自己可以使用的就好了。這個外掛是N多

springmvc-----圖片

點滴記載,點滴進步,願自己更上一層樓。 圖片上傳,首先需要兩個上傳圖片的jar包,新增到pom中。 <!-- 圖片上傳相關 start --> <dependency> <groupId>commons-fil

springmvc圖片後壓縮處理

後臺程式碼: @RequestMapping(value = "/imageUpload", method = RequestMethod.POST) public @ResponseBody JsonResult imageUpload(HttpServletRequ

一個完整的springmvc + ajaxfileupload實現圖片的案例

multipart per cnblogs not his let facade func connector 一,原理 詳細原理請看這篇文章 springmvc + ajaxfileupload解決ajax不能異步上傳圖片的問題。java.lang.ClassCastEx

SpringMVC框架五:圖片與JSON交互

view 方便 for 發布項目 repo 必須 class ebo http 在正式圖片上傳之前,先處理一個細節問題: 每一次發布項目,Tomcat都會重新解壓war包,之前上傳過的圖片會丟失 為了解決這個問題:可以不在Tomcat下保存圖片,而是另找一個目錄。 上傳

SpringMvc實現圖片

首先是設定一下tomcat的虛擬路徑,有兩種方法(以在C:/upfile/為例) 第一種是在tomcat的bin目錄下的server.xml新增一句 < Context docBase=“C:/upfile/” path="/upload" reloada

bootstrap圖片 fileinput+springmvc

文章來自:原始碼線上https://www.shengli.me/css/68.html   1、首先要引入檔案,程式碼如下:     2、建立一個div   3、JavaScript程式碼    

springMVC MultipartFile 圖片時修改圖片大小

1.引言 伺服器配置比較低,開啟網站時載入1MB+的圖片 速度很慢,影響客戶體驗。所以從網上找了java修改圖片大小的方法,這裡記錄一下 以備以後不時之需。修改之後的圖片大小在100kb左右 2.程式碼 @RequestMapping("/admin/fileUpload") @R

java後臺開發SpringMVC例子--圖片下載

java後臺開發SpringMVC例子–圖片上傳下載 文章目錄 java後臺開發SpringMVC例子--圖片上傳下載 1.配置 2.測試 環境: win7;jdk1.8

SpringMVC——jsp圖片報錯The current request is not a multipart request的解決辦法

報錯介面如下:   主要報錯語句為: The current request is not a multipart request 就是說當前這個請求不是一個multipart request,也就是說不是上傳檔案的請求。 那怎麼辦呢? 這裡我們需要知道一點,

Springmvc傳單張圖片、多圖片並顯示圖片

1、在pom加入jar: <dependency> <groupId>commons-fileupload</groupId> <artifac

javaEE Springmvc,檔案(圖片)

需要額外匯入檔案上傳的Jar包:commons-io和commons-fileupload的Jar包 ItemController.java(Controller後端控制器,檔案上傳(接收檔案型別的引數)): package com.xxx.springmvc.c

Springmvc檔案例子,圖片的Excel,並利用poi解析。

直奔主題,第一步:上傳一個帶圖片的Excel。第二步:解析該Excel檔案,得到Excel資料和圖片。 1.pom.xml <!-- 檔案上傳 --> <dependency> <groupId>commons-

ionic3 + springmvc/springboot + angular圖片以及渲染

伺服器端上傳圖片和查詢圖片的程式碼 @Controller @RequestMapping({"/attachment"}) @CrossOrigin // 允許跨域訪問 @PropertySource("classpath:file.properties") public class

springMVC簡單圖片具體步驟

0.匯入需要的jar包 1.頁面。form表單配置enctype上傳屬性  tomcat配置虛擬目錄,/pic是瀏覽器訪問路徑  第二個是配置碟符訪問路徑,便於頁面回顯 回顯的時候src路徑就不難理解了  2.呼叫方法引數提供MutipartFile介

SpringMVC圖片至資料庫和回顯

在登入時上傳一個圖片以及回顯。之前,需要匯入兩個jar包:commons-fileupload-1.3.1和commons-io-2.4。 Index.jsp頁面: 一定要寫 enctype="multipart/form-data",否則springmvc就會解析失敗。