Spring Boot 快速圖片上傳封裝

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("文件爲空"); } } } 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章