MultipartFile接口实现文件上传

  • MultipartFile接口
    这个类主要是用来实现表单的形式实现文件上传的功能。
    这个MulitipartFile是一个接口,继承了inputStreamSource,并且封装了getInputStream方法,返回的是inputstream类型,
    这样就是通过multipartStream能够将文件转化成输入流。
  • 方法介绍
    1 getName() 来获取传入文件参数的名字
    2 getOriginalFileName() 获取文件的完整名称,
    3 getContentType() 获取文件类型
    4 isEmpty判断文件是否为空
    5 getBytes 判断文件大小
    7 getInputStream() 获取文件输入流
    8 transferTo() 用来接收文件传输给目标路径
  • 前端页面代码
- 前端页面代码
body>
    <!--表单上传文件方法必须是post  enctype编码方式 是设置提交数据的格式
     multipart/form-data是代表上传二进制文件 注意name的名字要和后端参数保持一致-->
    <form action="/files" method="POST" enctype="multipart/form-data">
        <input type="file" name="file"/>
        <input type="submit" value="ok"/>
    </form>
</body>

  • 后端接口方法
- 配置文件 配置页面后置和上传文件大小,
freemarker:
    suffix: .html
  servlet:
    multipart:
      max-file-size: 20MB
      max-request-size: 20MB
- 后端接口
- 这个是跳转页面的
	@RequestMapping("/{page}")
    public String showinfo(@PathVariable String page){
        return page;
    }
 - 注意multipartfile的参数一定要和form表单的name一致   
    @ResponseBody
    @PostMapping("/files")
    public String fileupload(@RequestParam("file")MultipartFile file) throws IOException {
        System.out.println("开始执行了");
            //输出
             System.out.println(file.getName()); //file
             System.out.println(file.getOriginalFilename()); //上传的文件名字
             System.out.println(file.getSize());//字节大小
             System.out.println(file.getContentType()); //application/ftp 我上传的ftp
             System.out.println(file.isEmpty());//false 
             file.transferTo(new File("E:\\io\\tomcat\\"+file.getOriginalFilename()));
        	File file1 = new File("E:\\io\\tomcat\\" + file.getOriginalFilename());
        	boolean exists = file1.exists();
        	boolean file2 = file1.isFile();
        	return exists && file2?"成功":"失败";
    }
- boot支持页面需要依赖
		<!--freemarker启动器依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值