springboot上传并显示图片

springboot上传并显示图片

1.引入依赖

pom.xml

<!--文件上传 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>

2.配置webMvcConfiguration

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyWebConfig implements WebMvcConfigurer {
    
	/**
     *静态资源处理
	**/
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("file:D:/photo/");
    }

}

3.controller层

import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.ServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Controller
public class PhotoController {
    
    private String filePath = "D:/photo/";

    @RequestMapping("/")
    public String index(){
        return "photoDemo";
    }
    
    @RequestMapping("/upload")
    public String upload(@RequestParam("photo") MultipartFile photo, Model model, ServletRequest request) throws IOException {


        Map<String, String> map = new HashMap<String, String>();
        String fileName = photo.getOriginalFilename();//得到文件名
        System.out.println(fileName);

        if (fileName != null && fileName.length() > 0) {
            // 取得扩展名
            String fileExtName = fileName.substring(
                    fileName.lastIndexOf(".") + 1).toLowerCase();
            // 只上传图片  //判断图片上传的格式是否符合 后缀名是否有效
            if (fileExtName.equalsIgnoreCase("jpeg")
                    || fileExtName.equalsIgnoreCase("png") ||
                    fileExtName.equalsIgnoreCase("jpg")
                    || fileExtName.equalsIgnoreCase("gif")
                    || fileExtName.equalsIgnoreCase("ico")
                    ) {


                String newFileName = new Date().getTime() + fileName;//不改图片名字

                File descFile=new File(filePath, newFileName);
                FileUtils.writeByteArrayToFile(descFile, photo.getBytes());

                model.addAttribute("path", newFileName);
                System.out.println(newFileName);
            } else {// 说明上传的不是图片
                map.put("message1", "不是图片");

            }
        } else {
            map.put("message2", "上传失败!!!");
        }
        return "photoDemo";
    }

}

4.前端页面

<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="photo"  required/>
    <input type="submit" value="提交">
</form>
<!--使用的是thymeleaf   xmlns:th="http://www.thymeleaf.org" -->
<img th:src="${path}" th:width="100px" th:high="100px"/>
<!--<img src="${path}" th:width="100px" th:high="100px"/>-->
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值