栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot 文件和表单上传提交

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot 文件和表单上传提交

springboot 文件和表单一起提交

真的不得不说一句,网上搜了一大圈。没搜见一个合适的。。。

  • 1、首先是 文件上传–网上随便找一个:
@Controller
public class FileController {
    @GetMapping("/upload/page")
    public String uploadPage(){
        return "user-list";
    }

    @PostMapping("/upload/mutipart")
    public Map upload(@RequestParam("photo") MultipartFile photo){
        String path = "D:/桌面文件/图片/Springboot";//保存路径
        String filename = new
                SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());

        //获取上传文件的后缀suffix
        String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf("."));

        try {
            //Spring提供了文件操作类FileCopyUtils
            FileCopyUtils.copy(photo.getInputStream(), new
                    FileOutputStream(path + filename + suffix));
        } catch (IOException e) {
// TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("上传失败");

            return dealResultMap(false, "上传失败");
        }
        System.out.println("上传成功");

        return dealResultMap(true, "上传成功");

    }

    private Map dealResultMap(boolean success, String msg)
    {
        Map result = new HashMap();
        result.put("success", success);
        result.put("msg", msg);
        return result;
    }
}
  1. 场景切入:我要在 添加图书时,加入 文件上传:
    (图片简陋,不要介意)

(1)表单如下:(我用的jsp)

去掉子表单,
将原来的: enctype="multipart/form-data" 统一放到上面,统一提交到:/Book/addBook

    

表单与 文件上传 结合:

  
返回
* 书名:
* 图片: <%-- 注释 <%-- 注释了哦 action="/Book/addBook" >--%>
价格:

(2)Controller层代码如下:

  • 传递参数: MultipartFile photo
  • 获取上传的文件名
  • 设置要上传的文件路径
  @RequestMapping("/addBook")
    public  String addBook(Book book,@RequestParam("photo") MultipartFile photo){
        String path = "D:\桌面文件\图片\Springboot\";//保存路径
        String filename = new
                SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
                //这个 看自己罢,想重置文件名,就写这个,不想就往下看:fileName 
        String fileName = photo.getOriginalFilename();
        //获取上传文件的后缀suffix
        String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf("."));

        try {
            FileCopyUtils.copy(photo.getInputStream(), new
                    FileOutputStream(path + fileName ));
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("上传失败");
        }
        
        System.out.println("上传成功");
        System.out.println(path + fileName );
        System.out.println(book.getBookName());
        if(book.getBookName()==null){
            return "redirect:/Book/queryAll";
        }
        book.setImg("Springboot/"+fileName);
        boolean b = bookService.addBook(book);
        if(b){
            System.out.println("添加成功");
        }else {
            System.out.println("添加失败");
        }
        return "redirect:/Book/queryAll";

    }
  1. 尝试添加一下:


结果:

  1. 进行一点修改,可以在网页上显示:

感谢大佬 : springboot项目通过URL访问静态图片,本地文件夹下的图片.
呃,我好像忽略了什么:

OVER,写了很简单的文件上传,在此抛砖引玉

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361477.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号