美文网首页
上传图片存储全过程

上传图片存储全过程

作者: 祝家庄打烊 | 来源:发表于2024-02-18 16:01 被阅读0次

添加新的静态目录,原有static目录需要重新编译之后才能访问到新增的图片

新的静态目录
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 前面的upload意思是,访问的时候路径上要加上upload,不然也访问不到。
        // 后面的upload意思是,你图片上传的路径,我的图片上传就在upload文件中(新创建的的文件夹)。
        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();
        }
    }
}

相关文章

  • django上传图片前后端实例

    相关阅读 JQuery Ajax使用FormData对象上传文件 图片 | CSDNDjango 图片上传、存储与...

  • 阿里云 云存储

    PCH文件: 示例:图片存储处理 [1].图片上传: [2].获取云服务器存储地址: 获取到的阿里云存储地址:ht...

  • 封装直传阿里云存储文件上传控件

    本文目标 封装一个直传阿里云OSS云存储图片上传控件 控件效果图 上传之前 上传成功 预览图片 文件上传前后台及阿...

  • 2018-03-06 使用亚马逊上的CDN缓存S3的html文件

    1、缓存html静态文件 1、创建s3存储桶,并上传一个html文件 2、缓存图片 1、在存储桶中上传一个图片 2...

  • js 百度编辑器 图片上传

    图片上传方案: 目前来说,Web端基于七牛等云存储的图片上传方式分为以下两种: 上传图片至服务端,再将数据转发至七...

  • springboot+jpa+redis+quzartz+ela

    图片上传 图片存储在七牛云对象存储中,所以首先配置七牛云sdk pom.xml application.yml 七...

  • 千里码 File in File

    File in File 互联网应用经常需要存储用户上传的图片,比如facebook相册。facebook目前存储...

  • Springboot 03 ---- 利用MultipartFi

    文件上传可以有两种形式: 将图片资源上传到oos内容存储服务器,通过url访问图片资源 上传到项目服务器 这里采用...

  • 小程序上传文件

    1.先选择图片然后上传到云存储 获取图片的临时链接: 删除文件

  • 小程序上传图片到七牛

    小程序上传图片到七牛云存储,服务端使用nodejs的thinkjs框架 服务端 小程序端 上传图片 效果如下: 本...

网友评论

      本文标题:上传图片存储全过程

      本文链接:https://www.haomeiwen.com/subject/kdkmadtx.html