SpringBoot上传图片与回显

上传初级

添加依赖:

<dependency>
	<groupId>commons-io</groupId>
	 <artifactId>commons-io</artifactId>
	 <version>2.4</version>
</dependency>
<dependency>
	 <groupId>commons-fileupload</groupId>
	 <artifactId>commons-fileupload</artifactId>
	 <version>1.3.1</version>
</dependency>

前台html代码

<form action="/updateimg" method="post" enctype="multipart/form-data">

        <table border="1px solid red">
            <tr>
                <td>文件1</td>
                <td>
                    <input name="file" type="file"/>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input type="submit" value="提交"/>
                </td>
            </tr>
        </table>

    </form>

后台 控制层代码

@RequestMapping("updateimg")
    @ResponseBody
    public int UpdateImg(@RequestParam(value="file",required=false) MultipartFile[] file ) throws IOException {
        String s = editorImg.UploadImg(file);
        //注意这里我返回的是 上传成功后图片的名称
        System.out.println(s);
        //获得图片名字后存储到数据库中
        return mk_useService.UpdateUseImg(s);
    }

封装的图片上传代码

//普通的上传图片
    public String UploadImg(MultipartFile[] file) throws IOException {
        //定义序号
        int count=1;
        for (MultipartFile mf : file) {
            if(!mf.isEmpty()){
                // 使用UUID给图片重命名,并去掉四个“-”
                String name = UUID.randomUUID().toString().replaceAll("-", "");
                // 获取文件的扩展名
                String ext = FilenameUtils.getExtension(mf.getOriginalFilename());
                // 设置图片上传路径
                String url="D:/BaiduNetdiskDownload/";
                //设置图片新的名字
                String fileName=name+"."+ext;
                // 以绝对路径保存重名命后的图片
                File targeFile=new File(url,fileName);
                mf.transferTo(targeFile);
                // 把图片存储路径保存到数据库
                return url+fileName;
            }
            count++;
        }
        return null;
    }

配置图片存放的虚拟路径

@Configuration
public class MyWebConfigurer implements WebMvcConfigurer {

    //配置虚拟路径
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/img/**").addResourceLocations("file:D:/BaiduNetdiskDownload/");
    }
}

显示图片 上面我们把图片的url存放到数据库里面

@RequestMapping("show")
    public String show(Model model)
    {
        List<Photo> all = PhotoService.findAll();
        model.addAttribute("list",all);
        return "index";
    }

显示图片的html页面

<table border="1px solid red" align="center">
    <tr>
        <th>头像</th>
    </tr>
    <tr th:each="a:${list}">
        <!--获取th里面的内容必须用th获取-->
        <td>
            <img th:src="${a.url}">
        </td>
    </tr>
</table>

进阶操作

SpringBoot实现文件上传及下载
SpringBoot 中大文件(分片上传)断点续传与极速秒传

posted @ 2021-09-17 21:08  皮卡丘和羊宝贝😄  阅读(428)  评论(0编辑  收藏  举报