添加新的靜態(tài)目錄,原有static目錄需要重新編譯之后才能訪問到新增的圖片
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 前面的upload意思是门扇,訪問的時候路徑上要加上upload河泳,不然也訪問不到贵少。
// 后面的upload意思是,你圖片上傳的路徑峻呕,我的圖片上傳就在upload文件中(新創(chuàng)建的的文件夾)。
registry.addResourceHandler("/upload/**").addResourceLocations("file:upload/");
}
ImageUploadController
package com.example.demo.controller;
import com.example.demo.utils.Result;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
@RestController
public class ImageUploadController {
private static final String UPLOAD_DIR = System.getProperty("user.dir") + "\\upload\\images\\";
@PostMapping("/upload")
public Result uploadImage(@RequestParam MultipartFile file, @RequestParam String type, HttpServletRequest request) {
if (file.isEmpty()) {
return Result.error();
}
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
// 解決中文問題趣效,liunx下中文路徑瘦癌,圖片顯示問題
// fileName = UUID.randomUUID() + suffixName;
File dest = new File(UPLOAD_DIR + fileName);
// 檢測是否存在目錄
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
// 獲取當前服務的IP地址
String serverIP = InetAddress.getLocalHost().getHostAddress();
System.out.println(serverIP);
// 獲取當前服務的端口號
String serverPort = request.getServerPort() + "";
System.out.println(serverPort);
return Result.ok("http://" + serverIP + ":" + serverPort + "/upload/images/" + fileName);
} catch (IllegalStateException e) {
e.printStackTrace();
return Result.error();
} catch (IOException e) {
e.printStackTrace();
return Result.error();
}
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者