当前位置: 首页 > article >正文

spring boot 文件上传

文件上传,在开发中是再正常不过的功能了。不管是哪个语言,不管你在开发啥功能,都会遇上。那么,在实际的开发中,文件上传分两种,一种是上传到oss服务器,另一种是上传到本地服务器。
阿里oss云服务器
1、导入坐标依赖

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.15.1</version>
</dependency>

2、配置oss,根据自己的服务来写,配置文件名为【application.yml】

aliyun:
  oss:
    endpoint: *********
    accessKeyId: *********
    accessKeySecret: *********
    bucketName: *********
    WebPath: *********

3、建立 FileOssService 接口

package com.bnc.s12.service;


import org.springframework.web.multipart.MultipartFile;

public interface FileOssService {
    String upLoadOss(MultipartFile file);
}

package com.bnc.s12.service;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectResult;
import com.bnc.s12.common.OSSConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

@Service
@Slf4j
public class FileOssServiceImpl implements FileOssService {
    @Autowired
    private OSSConfig ossConfig;


    @Override
    public String upLoadOss(MultipartFile file) {
        String bucketName = ossConfig.getBucketName();
        String endpoint = ossConfig.getEndpoint();
        String accessKeyId = ossConfig.getAccessKeyId();
        String accessKeySecret = ossConfig.getAccessKeySecret();



        OSS ossClient = new OSSClientBuilder().build(endpoint , accessKeyId , accessKeySecret);
        String originalFilename = file.getOriginalFilename();

        String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
        System.out.println(extension);

		//这儿必须得用try---catch 不然会报错的
        try {
            PutObjectResult path = ossClient.putObject(bucketName , originalFilename , file.getInputStream());

            String p = "https://" + bucketName + "." + endpoint + "/" + originalFilename;
            System.out.println(p);

        }catch (Exception e) {
            //e.printStackTrace();
        }



        return "";
    }
}

4、在控制器中的代码如下

@PostMapping("/myUploadOss")
//file 为前端 file 的 name 属性名
 public String myUploadOss(@RequestPart("file") MultipartFile file){
      String s = fileOssService.upLoadOss(file);
      return "success";
  }

http://www.kler.cn/a/397689.html

相关文章:

  • 量化交易系统开发-实时行情自动化交易-3.4.3.3.期货市场深度数据
  • 数据研发基础 | 什么是流批一体
  • vxe-grid table 校验指定行单元格的字段,只校验某个列的字段
  • 网盘聚合搜索项目Aipan(爱盼)
  • [JAVA]有关MyBatis环境配置介绍
  • 11.13机器学习_线性回归
  • CI/CD认识
  • 终端快捷键学习笔记
  • 重学SpringBoot3-整合Quartz定时任务
  • IP地址查询——IP归属地离线库
  • ElasticSearch学习笔记二:使用Java客户端
  • Spring Boot框架:构建可扩展的网上商城
  • ArcGIS Pro属性表乱码与字段名3个汉字解决方案大总结
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-并行调用多个tools(五)
  • 人工智能之数学基础:数学在人工智能领域中的地位
  • Android Studio 控制台输出的中文显示乱码
  • 开源 2 + 1 链动模式、AI 智能名片、S2B2C 商城小程序在用户留存与品牌发展中的应用研究
  • Python知识点精汇!字符串:定义、截取(索引)和其内置函数
  • 【算法】二分
  • PMP--一、二、三模、冲刺--分类--变更--技巧--特点
  • Linux debian系统安装ClamTk开源图形用户界面(GUI)杀毒软件
  • Kubernetes 魔法棒:kubeadm 一键部署的奇妙之旅
  • AI技术在电商中的挑战与未来
  • web——upload-labs——第一关
  • Eclipse 安装插件
  • 如何在pytorch中建立叶子节点.