上傳圖片存儲全過程

添加新的靜態(tài)目錄,原有static目錄需要重新編譯之后才能訪問到新增的圖片

新的靜態(tài)目錄
    @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);
            // 獲取當(dāng)前服務(wù)的IP地址
            String serverIP = InetAddress.getLocalHost().getHostAddress();
            System.out.println(serverIP);
            // 獲取當(dāng)前服務(wù)的端口號
            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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容