自学SpringBoot学习笔记--文件上传

本文介绍了一个基于layui框架的文件上传功能实现案例。作者通过自定义HTML表单与Spring MVC控制器结合,实现了文件上传功能,并详细展示了如何配置文件大小限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天偷偷摸摸的搞了一套layui ,整合起来感觉测试起来心情都变好了,便于以后再写其他功能方便测试。看看样子:


以直男审美来看,还是挺不错的~~只是集成了部分功能元素,以后需要的话再往上慢慢添加,今天记录文件上传~

我没有用layui自带的代码实现文件上传前端页面,而是自己写的html.

<form method="POST" enctype="multipart/form-data" action="/file/upload">
        文件:<input type="file" name="file" />
    <button class="layui-btn" type="submit">上传</button>
</form>

但是button用的layui的样式 为了好看一点。

看controller

package com.learn.paomo.controller;

import com.learn.paomo.util.FileUtil;
import com.learn.paomo.util.JsonResult;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

@Controller
@RequestMapping(value="/file")
public class FileUploadController {
    @RequestMapping(value="/upload")
    @ResponseBody
    public JsonResult upload(@RequestParam("file") MultipartFile file, HttpServletRequest request){
        JsonResult jr=new JsonResult();
        String fileName = file.getOriginalFilename();
        String filePath = request.getSession().getServletContext().getRealPath("fileupload/");
        try {
            FileUtil.uploadFile(file.getBytes(), filePath, fileName);
            jr.setFlag(true);
            jr.setMsg("上传成功"+fileName);
        } catch (Exception e) {
            jr.setMsg("上传失败");
            jr.setFlag(false);
        }

        return jr;
    }
}

其中JsonResult是我自己封装的一个返回类,返回json对象的,这个可以忽略,与本章记录无关!!

package com.learn.paomo.util;

public class JsonResult {
    public boolean flag;
    public String msg;
    public Object model;

    public boolean getFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getModel() {
        return model;
    }

    public void setModel(Object model) {
        this.model = model;
    }
}

 还有一个类,是自己写的一个util类,对不起,掌嘴!!不是自己写的,网上扒的,我忘了哪篇博客了,对不起。我回头找找。

https://blog.youkuaiyun.com/change_on/article/details/59529034这个博主写的,在此非常感谢博主, 我也只是学习学习。(侵删,学习笔记)

package com.learn.paomo.util;

import java.io.File;
import java.io.FileOutputStream;

public class FileUtil {
    public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {
        File targetFile = new File(filePath);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
        FileOutputStream out = new FileOutputStream(filePath+fileName);
        out.write(file);
        out.flush();
        out.close();
    }
}

感觉还是很简洁的。

然后在src-main目录下创建webapp文件夹,然后在webapp下创建fileupload文件夹

然后测试一下:


点击上传


然后那个文件夹下看看



接下来就是一波小福利了,哈哈哈哈哈~~

打开这个图片瞅瞅:



补充:差点忘了,如果文件上传过大,会报错……需要再application.yml文件里配置一下(yml 和properties文件都一样,格式不同)

spring:
  servlet:
    multipart:
      max-file-size: 30mb
      max-request-size: 30mb

亲测可用,max-file-size是单个文件限制,max-request-size限制总共上传文件大小。

ojbk!下篇继续福利,请注意我是为了日后回顾这些笔记的时候不至于这么枯燥,哈哈哈哈哈隔~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值