java回顾:文件上传 (配合SpringMVC)

目录

十一、文件上传 

11.1、文件上传三要素

11.2、SpringMVC实现文件上传

11.2.1 导入Fileupload的jar包

11.2.2 配置到springmvc.xml文件中

11.2.3 编写前端页面(发送上传文件的请求)  

11.2.4  测例


十一、文件上传 

用户通过客户端,将用户本地文件传递到服务器上,并在服务器上将用户上传的文件进行保存;

11.1、文件上传三要素

【1】请求方式必须是Post,Get请求携带的数据量受限

【2】form表单的enctype取值必须是:multipart/form-data

        form默认content-type是:application/x-www-form-urlencoded

        enctype:是表单请求正文的类型

        multipart/form-data: 多部分表单项

                作用:

                        1.将普通表单项与文件上传项分离,普通表单项可以直接被解析

                        2.而上传文件项需要对上传的文件进行解析,并保存文件

【3】提供一个文件输入框

    
        用户名: 【普通表单项】     密码: 【普通表单项】       头像:   【上传文件项】                

11.2、SpringMVC实现文件上传

11.2.1 导入Fileupload的jar包

 	
    
      commons-fileupload
      commons-fileupload
      1.3.1
    

11.2.2 配置到springmvc.xml文件中

	
    
        
        
        
        
    

11.2.3 编写前端页面(发送上传文件的请求)  

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    文件上传


    
    
用户名:
年龄:
头像:
用户名:
年龄:
<%--name相同,控制器使用数组接收--%> 头像:
头像:
头像:

11.2.4  测例

 

@Controller
@RequestMapping("/fileUpload")
public class FileUpload {

    @RequestMapping("/one")
    public String uploadOne(String name, String age, MultipartFile file) throws IOException {
        System.out.println("name = " + name + ",age = " + age + ",file = " + file);
        //form表单中输入项的名称(name属性对应的名称)
        String inputName = file.getName();
        //获取图片原始名称
        String filename = file.getOriginalFilename();
        //获取文件的后缀名,从。开始截取到最后
        String substring = filename.substring(filename.lastIndexOf("."));
        System.out.println("输入名 = " + inputName + ",原始名 = " + filename + ",后缀名 = " + substring);
        //本地转存
        file.transferTo(new File("C:\\Users\\14614\\Desktop\\images\\"+filename));
        return "success";
    }

    @RequestMapping("/more")
    public String uploadMore(String name, String age, MultipartFile[] file) throws IOException {
        System.out.println("name = " + name + ",age = " + age + ",file = " + file);
        //form表单中输入项的名称(name属性对应的名称)
        for (MultipartFile mfile : file) {
            String inputName = mfile.getName();
            //获取图片原始名称
            String filename = mfile.getOriginalFilename();
            //获取文件的后缀名,从。开始截取到最后
            String substring = filename.substring(filename.lastIndexOf("."));
            System.out.println("输入名 = " + inputName + ",原始名 = " + filename + ",后缀名 = " + substring);
            //本地转存 使用uuid代替文件名
            mfile.transferTo(new File("C:\\Users\\14614\\Desktop\\images\\"+ UUID.randomUUID()+substring));
        }
        return "success";
    }
}

你可能感兴趣的:(java回顾,java,servlet,开发语言)