学习在IDEA中使用SpringMVC(五)文件上传

1.传统方式

(1)在pom.xml中导入坐标

	<!--  文件上传需要的两个jar包-->
	<dependency>
	  <groupId>commons-fileupload</groupId>
	  <artifactId>commons-fileupload</artifactId>
	  <version>1.3.1</version>
	</dependency>
	
	<dependency>
	  <groupId>commons-io</groupId>
	  <artifactId>commons-io</artifactId>
	  <version>2.4</version>
	</dependency>

(2)在index添加
在这里插入图片描述
(3)controller代码

    @Controller
    @RequestMapping("/user")
    public class UserController {
    
        @RequestMapping("/fileUpLoad")
        public String fileUpLoad(HttpServletRequest request) throws Exception {
            //使用fielupload组件完成文件上传
           //上传的位置
            String path = request.getSession().getServletContext().getRealPath("/uploads/");
            File file = new File(path);
            if(!file.exists()){
                //创建该文件夹
                file.mkdirs();
            }
            //解析request对象,获取上传文件项
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            //解析requset
            List<FileItem> items = upload.parseRequest(request);
            //遍历
            for(FileItem item : items){
                //进行一个判断,当前item对象是否是上传文件项
            if(item.isFormField()){
                //说明普通表单项
            }else{
                //说明普通文件项
                //获取上传文件的名称
                String filename = item.getName();
                //把文件名称设置为唯一值,uuid
                String uuid = UUID.randomUUID().toString().replace("-", "");
                filename = uuid+"_"+filename;
                //完成文件上传
                item.write(new File(path,filename));
                //删除临时文件
                item.delete();
                }
            }
            System.out.println("fileUpLoad执行了");
            return "success";
        }
    }

2.SpringMVC传统方式上传

原理图:
在这里插入图片描述
(1)导入1.1中坐标,并在springMVC配置文件中配置文件解析器

 <!--  配置文件解析器对象 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--上传文件最大字节(10M )-->
        <property name="maxUploadSize" value="10485760"/>
    </bean>

(2)controller代码

    @Controller
    @RequestMapping("/user")
    public class UserController {
    
        @RequestMapping("/fileUpLoad")
        public String fileUpLoad(HttpServletRequest request, MultipartFile upload) throws Exception {
            //使用fielupload组件完成文件上传
           //上传的位置
            String path = request.getSession().getServletContext().getRealPath("/uploads/");
            File file = new File(path);
            if(!file.exists()){
                //创建该文件夹
                file.mkdirs();
            }
    
                //说明上传文件项
                //获取上传文件的名称
                String filename = upload.getOriginalFilename();
                //把文件名称设置为唯一值,uuid
                String uuid = UUID.randomUUID().toString().replace("-", "");
                filename = uuid+"_"+filename;
                //完成文件上传
                upload.transferTo(new File(path,filename));

3.SpringMVC服务器方式上传

3.1 搭建图片服务器
(1)分服务器的目的:
在这里插入图片描述
在这里插入图片描述
(2) 准备两个 tomcat 服务器,并创建一个用于存放图片的 web 工程
在这里插入图片描述
在这里插入图片描述
3.2. 实现SpringMVC跨服务器方式文件上传
(1)导入开发需要的jar包
在这里插入图片描述
在这里插入图片描述
(2) 编写文件上传的JSP页面
在这里插入图片描述
(3)编写控制器
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值