国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

spring boot文件上傳

這篇具有很好參考價(jià)值的文章主要介紹了spring boot文件上傳。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

文件上傳

簡(jiǎn)介

文件上傳,是指將本地圖片、視頻、音頻等文件上傳到服務(wù)器,供其他用戶瀏覽或下載的過程。
文件上傳在項(xiàng)目中應(yīng)用非常廣泛,我們經(jīng)常發(fā)微博、發(fā)微信朋友圈都用到了文件上傳功能。

本地存儲(chǔ)

前端代碼:

<form action="/upload"method="post"enctype="multipart/form-data">
	頭像:<input type="file"name="image"><br>
<input type="submit"value="提交">
</form>

后端代碼:

@PostMapping("/upload")
@ApiOperation("文件上傳")
public Result<String> upload(MultipartFile file){
  log.info("文件上傳:{}",file);


  // 原始文件名
   String originalFilename = file.getOriginalFilename();
   // 后綴名
   String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
   // 構(gòu)造新文件名稱
   String fileName = UUID.randomUUID().toString()+extension;
   // 將文件存儲(chǔ)到服務(wù)器的磁盤目錄中
  	file.transferTo(new File("E:\\Vue\\imgs"+fileName));
   
   return Result.success();

阿里云OSS對(duì)象存儲(chǔ)

對(duì)于阿里云的oss的使用可閱讀對(duì)象存儲(chǔ) OSS官方文檔

導(dǎo)入依賴
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.15.1</version>
</dependency>

如果使用的是Java 9及以上的版本,則需要添加jaxb相關(guān)依賴。添加jaxb相關(guān)依賴示例代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-718073.html

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.3</version>
</dependency>
代碼編寫
  1. 編寫AliOssUtil工具類用作上傳
@Data
@AllArgsConstructor
@Slf4j
public class AliOssUtil {

    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;

    /**
     * 文件上傳
     *
     * @param bytes
     * @param objectName
     * @return
     */
    public String upload(byte[] bytes, String objectName) {

        // 創(chuàng)建OSSClient實(shí)例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 創(chuàng)建PutObject請(qǐng)求。
            ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }

        //文件訪問路徑規(guī)則 https://BucketName.Endpoint/ObjectName
        StringBuilder stringBuilder = new StringBuilder("https://");
        stringBuilder
                .append(bucketName)
                .append(".")
                .append(endpoint)
                .append("/")
                .append(objectName);

        log.info("文件上傳到:{}", stringBuilder.toString());

        return stringBuilder.toString();
    }
}


  1. 相關(guān)配置
  alioss:
    endpoint: oss-cn-hangzhou.aliyuncs.com
    access-key-id: your-access-key-id
    access-key-secret: your-access-key-secret
    bucket-name: your-bucket-name
  1. 讀取配置文件
@Component
@ConfigurationProperties(prefix = "sky.alioss")
@Data
public class AliOssProperties {

    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;

}
  1. 給屬性賦值,并創(chuàng)建對(duì)象
/**
 * 配置類,用于創(chuàng)建AliOssUtil對(duì)象
 */
@Configuration
@Slf4j
public class OssConfiguration {

    @Bean
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
        log.info("開始創(chuàng)建阿里云文件上傳工具類對(duì)象:{}",aliOssProperties);
        return new AliOssUtil(aliOssProperties.getEndpoint(),
                aliOssProperties.getAccessKeyId(),
                aliOssProperties.getAccessKeySecret(),
                aliOssProperties.getBucketName());
    }
}
  1. 編寫上傳文件接口
@Autowired
private AliOssUtil aliOssUtil;

@PostMapping("/upload")
@ApiOperation("文件上傳")
public Result<String> upload(MultipartFile file){
    log.info("文件上傳:{}",file);

    try {
        // 原始文件名
        String originalFilename = file.getOriginalFilename();

        // 后綴名
        String extension = originalFilename.substring(originalFilename.lastIndexOf("."));

        // 構(gòu)造新文件名稱
        String fileName = UUID.randomUUID().toString()+extension;
        // 文件的請(qǐng)求路徑
        String filePath = aliOssUtil.upload(file.getBytes(), fileName);
        // 返回請(qǐng)求路徑用于回顯圖片
        return Result.success(filePath);
    } catch (IOException e) {
        log.error("文件上傳失?。簕}",e);
    }
    
    return null;
}

到了這里,關(guān)于spring boot文件上傳的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot 設(shè)置上傳文件大小限制

    在開發(fā) Web 應(yīng)用程序時(shí),我們通常需要處理文件上傳功能。為了確保系統(tǒng)的安全性和穩(wěn)定性,我們需要限制上傳文件的大小。本篇博客將介紹如何使用 Spring Boot 設(shè)置上傳文件大小限制。 1. application.properties 配置文件 Spring Boot 提供了一種簡(jiǎn)單的方式來配置上傳文件大小限制。首

    2024年02月04日
    瀏覽(246)
  • Spring Boot實(shí)現(xiàn)文件上傳和下載

    1.文件上傳 在pom.xml文件中添加依賴: spring-boot-starter-web 和 spring-boot-starter-thymeleaf 。 創(chuàng)建一個(gè)上傳前端的頁(yè)面,包括一個(gè)表單來選擇文件和一個(gè)提交按鈕。 在Controller中添加一個(gè)POST方法,該方法接受 MultipartFile 參數(shù),將文件保存在服務(wù)器上。 在application.properties文件中配置上

    2024年02月04日
    瀏覽(20)
  • spring boot 上傳文件的大小限制

    根據(jù)spring boot 版本不同在application.properties文件添加不同的配置 Spring Boot 1.3 或之前的版本,配置: Spring Boot 1.4 版本后配置更改為: Spring Boot 2.0 之后的版本配置修改為: 單位Mb改為MB了: 以上配置直接在配置文件中即可

    2024年02月07日
    瀏覽(90)
  • Spring Boot 中實(shí)現(xiàn)文件上傳、下載、刪除功能

    Spring Boot 中實(shí)現(xiàn)文件上傳、下載、刪除功能

    ??作者簡(jiǎn)介,普修羅雙戰(zhàn)士,一直追求不斷學(xué)習(xí)和成長(zhǎng),在技術(shù)的道路上持續(xù)探索和實(shí)踐。 ??多年互聯(lián)網(wǎng)行業(yè)從業(yè)經(jīng)驗(yàn),歷任核心研發(fā)工程師,項(xiàng)目技術(shù)負(fù)責(zé)人。 ??歡迎 ??點(diǎn)贊?評(píng)論?收藏 ?? SpringBoot 領(lǐng)域知識(shí) ?? 鏈接 專欄 SpringBoot 專業(yè)知識(shí)學(xué)習(xí)一 SpringBoot專欄 Sprin

    2024年01月19日
    瀏覽(34)
  • spring boot + minio 分布式文件上傳

    spring boot + minio 分布式文件上傳

    1、分布式文件系統(tǒng) 簡(jiǎn)單理解為:一個(gè)計(jì)算機(jī)無(wú)法存儲(chǔ)海量的文件,通過網(wǎng)絡(luò)將若干計(jì)算機(jī)組織起來共同去存儲(chǔ)海量的文件,去接收海量用戶的請(qǐng)求,這些組織起來的計(jì)算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信。 好處: 一臺(tái)計(jì)算機(jī)的文件系統(tǒng)處理能力擴(kuò)充到多臺(tái)計(jì)算機(jī)同時(shí)處理。 一臺(tái)計(jì)算機(jī)

    2024年02月08日
    瀏覽(22)
  • Spring Boot 筆記 019 創(chuàng)建接口_文件上傳

    Spring Boot 筆記 019 創(chuàng)建接口_文件上傳

    1.1 創(chuàng)建阿里OSS bucket OSS Java SDK 兼容性和示例代碼_對(duì)象存儲(chǔ)(OSS)-阿里云幫助中心 (aliyun.com) 1.2 編寫工具類 1.3 創(chuàng)建文件上傳controller 1.4 postman測(cè)試

    2024年02月22日
    瀏覽(24)
  • spring-boot中實(shí)現(xiàn)分片上傳文件

    spring-boot中實(shí)現(xiàn)分片上傳文件

    一、上傳文件基本實(shí)現(xiàn) 1、前端效果圖展示,這里使用 element-ui plus 來展示樣式效果 2、基礎(chǔ)代碼如下 3、定義后端接口,并且處理好跨域(關(guān)于跨域處理,自己百度處理) 4、保存文件到本地文件 二、配置靜態(tài)目錄 1、在 FileApplication.java 旁邊添加一個(gè) SpringMvcConfig.java 的文件 2、直

    2024年02月05日
    瀏覽(26)
  • Spring Boot 實(shí)現(xiàn)文件本地以及OSS上傳

    Maven依賴 封裝工具類 上面的代碼我們可以定義一個(gè)工具類,這樣在任何需要文件上傳的地方只需要調(diào)用 upload 方法即可,大大減少了代碼量 使用工具類

    2024年03月08日
    瀏覽(22)
  • Spring Boot實(shí)現(xiàn)文件上傳的兩種方式

    Spring Boot實(shí)現(xiàn)文件上傳的兩種方式

    最近的一個(gè)小項(xiàng)目里使用到了文件上傳、下載功能,今天我打算梳理一下文件上傳所涉及的技術(shù)及實(shí)現(xiàn)。 內(nèi)容主要包括兩部分,如何通過純 Servlet 的形式進(jìn)行文件上傳、保存(不通過 Spring 框架);另一部分是如何在 Spring Web MVC 中進(jìn)行文件上傳。 HTTP 協(xié)議傳輸文件一般都遵循

    2024年02月05日
    瀏覽(28)
  • Spring boot實(shí)現(xiàn)上傳文件至本地或服務(wù)器

    大家好 我是程序猿小張 圖片文件上傳是項(xiàng)目中必不可少的一個(gè)功能,上傳的地址也當(dāng)然是優(yōu)先選擇第三方的對(duì)象存儲(chǔ),例如七牛云、阿里云等等,但是當(dāng)中的話只有七牛云是有一個(gè)免費(fèi)額度的,其他都是要收錢的。所以就想著,哎,這個(gè)能不能上傳到本地呢?答案是肯定可

    2024年02月11日
    瀏覽(98)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包