springmvc上傳圖片到Tomcat虛擬目錄


一、簡介

通過把文件上傳到tomcat的虛擬目錄,實現代碼和資源文件分開。

二、環境

spring+springmvc+mybatis

三、代碼實現

1.導入文件上傳的jar

<dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

 

2.在springmvc.xml中配置multipart類型解析器

<!-- SpringMVC上傳文件時,需要配置MultipartResolver處理器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"/>
        <!-- 指定所上傳文件的總大小不能超過60000K。注意maxUploadSize屬性的限制不是針對單個文件,而是所有文件的容量之和     -->
        <property name="maxUploadSize" value="600000000"/>
        <property name="maxInMemorySize" value="600000000"/>
    </bean>

 

3.在tomcat下創建虛擬目錄

  • 在tomcat的根目錄下創建一個名為FileDir的目錄(當然這個目錄也可以建立在其它的地方)

 

  •  在tomcat的conf/server.xml,配置虛擬目錄。增加下面這行
<Context path="/FileDir" docBase="D:\tomcats\Tomcat7-8080-idea\FileDir"/>

 

 

  • 添加一張圖片1.jpg到虛擬目錄中,並啟動tomcat測試。訪問:http://localhost:8080/FileDir/1.jpg。可以請求到圖片,說明配置成功。

4.springmvc上傳圖片到虛擬目錄

  • jsp頁面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>測試頁</title>
</head>
<body>
    <h2>測試文件上傳</h2>
    <form action="upload" method="post" enctype="multipart/form-data">
        姓名:<input type="text" name="realname"><br>
        頭像:<input type="file" name="picFile"><br>
        <input type="submit" value="上傳">
    </form>
    <c:if test="${pic != null}">
        <img src="/FileDir/${pic}" >
    </c:if>
</body>
</html>

 

  • controller
@RequestMapping(value = "/upload",method = {RequestMethod.POST})
    public String upload(MultipartFile picFile,String realname,Model model) throws Exception{
        if(!picFile.isEmpty()){
            System.out.println("realname:"+realname);
            //存儲圖片的路徑
            String filePath = "D:\\tomcats\\Tomcat7-8080-idea\\FileDir\\";
            String originalFilename = picFile.getOriginalFilename();
            //獲取文件后綴名稱
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            //新圖片名稱
            String fileName = UUID.randomUUID().toString()+suffix;
            //上傳圖片
            File newFile = new File(filePath+fileName);
            picFile.transferTo(newFile);
            //返回頁面
            model.addAttribute("pic",fileName);
        }
        return "test";
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM