Spring Boot 快速图片上传封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import com.alibaba.fastjson.JSONObject;
import com.retailo2o.server.domain.base.ResponseData;
import io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
 
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
 
/**
 * 文件上传处理
 *
 */
@RestController
@RequestMapping("/webAPI")
public class CommonController
{
    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
   
 
    /**
     * 1.文件保存在服务器,url地址保存在数据库
     * 上传成功之后返回成功保存的url地址
     */
    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    @ResponseBody
    public ResponseData upload(@RequestParam("file") MultipartFile file) {
        try {
            JSONObject jsonObject = new JSONObject();
            if (file.isEmpty()) {
                System.out.println("上传的文件为空!");
                return ResponseData.error("上传的文件为空");
            }
            // 文件名
            String fileName = file.getOriginalFilename();
            // 获取文件后缀名
            String extension = fileName.substring(fileName.indexOf("."));
            // 上传文件的路径
            String uploadFolder =  glbalUploadPath//D:/home/uploadPath/; // 生成一个新的文件名 fileName = UUID.randomUUID() + extension; File dest = new File(uploadFolder + fileName); // 检测文件目录是否存在 不存在则创建 if (!dest.getParentFile().exists()) { dest.getParentFile().mkdirs(); } try { file.transferTo(dest); } catch (IOException e) { e.printStackTrace(); } // 返回虚拟文件访问路径 jsonObject.put("fileName",fileName); jsonObject.put("url",globalpictureUrl+"/scm-server/upload/"+fileName); jsonObject.put("fileByte",file.getBytes()); return ResponseData.success(jsonObject); } catch (Exception ex) { System.out.println("文件为空"); return ResponseData.error("文件为空"); } } /** * 1.文件保存在服务器,url地址保存在数据库 * 上传成功之后返回成功保存的url地址 */ @PostMapping("/upload2") @ResponseBody public ResponseData uploadFile2(@RequestParam("file") MultipartFile file, HttpServletRequest request){ JSONObject jsonObject=new JSONObject(); if(!file.isEmpty()){ String uploadPath = "C:\\uploadFile"; // 如果目录不存在则创建 File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } String OriginalFilename = file.getOriginalFilename();//获取原文件名 String suffixName = OriginalFilename.substring(OriginalFilename.lastIndexOf("."));//获取文件后缀名 //重新随机生成名字 String filename = UUID.randomUUID().toString() +suffixName; File localFile = new File(uploadPath+"\\"+filename); try { file.transferTo(localFile); //把上传的文件保存至本地 /** * 这里应该把filename保存到数据库,供前端访问时使用 */ // return filename;//上传成功,返回保存的文件地址 jsonObject.put("fileName",filename); jsonObject.put("url",filename); System.out.println(filename); return ResponseData.success(jsonObject); }catch (IOException e){ e.printStackTrace(); System.out.println("上传失败"); return ResponseData.error("上传失败"); } }else{ System.out.println("文件为空"); return ResponseData.error("文件为空"); } } }

  

posted @   LowKeyC  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
有志者事竟成破釜沉舟百二秦关终属楚苦心人,天不负,卧薪尝胆,三千越甲可吞吴
点击右上角即可分享
微信分享提示