• springmvc上传文件


    1 配置虚拟路径

    方法一:修改tomcat的配置文件

    tomcat上配置图片虚拟目录,在tomcatconf/server.xml中添加:

    <Context docBase="D:developupload	emp" path="/pic" reloadable="false"/>

    访问http://localhost:8080/pic即可访问D:developupload emp下的图片。

    方法二:通过eclipse配置

    复制一张图片到D盘下面的upload问价夹里面,然后使用浏览器访问。

    网址为:http://localhost:8080/pic/图片名称(包括后缀名)

    2 加入jar包

    实现图片上传需要加入的jar包,如下图:

    把两个jar包放到工程的lib文件夹中

    3 配置上传解析器

     springmvc.xml中配置文件上传解析器

    <!-- 文件上传,id必须设置为multipartResolver -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置文件上传大小 单位是B 5M=5*1024*1024 -->
        <property name="maxUploadSize" value="5242880" />
    </bean>

    4 准备jsp页面

    这里我准备两个jsp页面,1个用于文件上传,另外一个用于上传的图片的回显。

    1 fileupload.jsp页面

    <%@ 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>FileUpload</title>
    </head>
    <body>
        <form action="${pageContext.request.contextPath }/file/upload.action" 
              method="post" enctype="multipart/form-data">
              <input type="file" name="filename">
              <input type="submit" value="上传">
        </form>
    </body>
    </html>

    2 uploadsuccess.jsp页面

    <%@ 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>Insert title here</title>
    </head>
    <body>
        <h1>${msg}</h1>
        <div style=" 600px;height: 480px;border:2px solid green" >
            <img alt="图片获取失败" src="/pic/${pictureName}"
             style=" 100%;height: 100%">
        </div>
    </body>
    </html>

    5 图片上传FileController

    package com.test.springmvc.controller;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.UUID;
    
    import javax.jws.WebParam.Mode;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.multipart.MultipartFile;
    
    @Controller
    public class FileController {
    
        @RequestMapping(value="/file/upload.action")
        public void fileUpload(HttpServletRequest request,
                HttpSession session,
                HttpServletResponse response, 
                MultipartFile filename) throws Exception{
    
            /* 图片上传
             * 
             * 首先应该判断是否上传了图片,如果没有上传图片的话。
             * oriName为[].然后执行oriName.lastIndexOf(".")将会抛出异常。
             */
            if(!filename.isEmpty()){ //上传了图片
                // 设置图片名称,不能重复,可以使用uuid
                String picName =UUID.randomUUID().toString().replaceAll("-", "");
                
                // 获取文件名
                String oriName = filename.getOriginalFilename();
                // 获取图片后缀
                String extName = oriName.substring(oriName.lastIndexOf("."));
    
                // 开始上传.需要注意E:/upload/路径必须存在,不然会抛出异常
                filename.transferTo(new File("E:/upload/" + picName + extName));
                
                //上传后的图片名称
                String pictureName = picName+extName;
                
                //图片名称放入域中,同时返回上传成功了的提示
                session.setAttribute("pictureName", pictureName);
                session.setAttribute("msg", "图片上传成功了");
                //重定向图片回显的jsp页面
                response.sendRedirect(request.getContextPath()+"/uploadsuccess.jsp");
            }else{//没有上传图片
                session.setAttribute("msg", "你没有选择上传的图片");
                //重定向图片回显的jsp页面
                response.sendRedirect(request.getContextPath()+"/uploadsuccess.jsp");
            }
        }
    }

    6 测试

     

  • 相关阅读:
    crazyflie2.0 RCC时钟知识
    quick-cocos2d-x开发工具sublime text及其强力插件QuickXDev
    [Swift通天遁地]一、超级工具-(16)使用JTAppleCalendar制作美观的日历
    [Swift]LeetCode186. 翻转字符串中的单词 II $ Reverse Words in a String II
    [SQL]LeetCode185. 部门工资前三高的员工 | Department Top Three Salaries
    [Swift通天遁地]一、超级工具-(15)使用SCLAlertView制作强大的Alert警告窗口和Input编辑窗口
    [SQL]LeetCode184. 部门工资最高的员工 | Department Highest Salary
    [Swift通天遁地]一、超级工具-(14)使用SweetAlert制作漂亮的自定义Alert窗口
    [Swift]关键字:Self、self与super
    [Swift]LeetCode964. 表示数字的最少运算符 | Least Operators to Express Number
  • 原文地址:https://www.cnblogs.com/jepson6669/p/9038914.html
Copyright © 2020-2023  润新知