首頁 後端開發 php教程 七牛云如何上传图片

七牛云如何上传图片

Jun 06, 2016 pm 08:47 PM
七牛雲 上傳圖片

七牛云如何上传图片

七牛云上传图片的方法:

1,注册七牛云账号,

2,创建一个存储空间bucket,创建的时候回送一个临时的测试域名,这个等上传工具类要用到 ,有效期30天,

3,写java工具类

public class upLoadFile {
//...生成上传凭证,然后准备上传   这个是在注册的账户里面有个人中心那里的密钥管理
1
public static String accessKey = “h9r4Vz72dIAEL2PLSYXFEv39GmUOsw99y7wkbQQW”;
public static String secretKey = “BWhiWbB7D-lWkI2bP2c6wBYRbak3MzmcUeoyTaNv”;
// public static String bucket = “vehicle-picture”;
//这个是创建的存储空间的名字
public static String bucket = “image-a”;
//这个就是测试域名 创建的时候一般都会赠送一个测试域名
// public static String domainOfBucket = “http://qn.vwaiter.cn”;
public static String domainOfBucket = “pn7fhqast.bkt.clouddn.com”;
public static void main(String[] args)
{
getUrl(“FpMjfsJwwMDYC-IXjMIhWm9xiYt4”);
}
/**
 * 上传图片
 * @param file
 * @return
 */
public  static String  uploadFile(MultipartFile file) {
    //构造一个带指定Zone对象的配置类
    Configuration cfg = new Configuration(Zone.zone0());
    //...其他参数参考类注释
    UploadManager uploadManager = new UploadManager(cfg);
    //默认不指定key的情况下,以文件内容的hash值作为文件名
    String fileName=null;
    String key = null;
    try {
        Logger.getLogger("start>>>>>>>>>>").info("图片上传");
        byte[] uploadBytes=file.getBytes();
        ByteArrayInputStream byteInputStream=new ByteArrayInputStream(uploadBytes);
        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);
        Response response = uploadManager.put(byteInputStream,key,upToken,null, null);
        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
        //key为空时默认使用hash值作为key
        System.out.println(putRet.key);
        System.out.println(putRet.hash);
        fileName=putRet.hash;
        Logger.getLogger("end>>>>>>>>>>").info("图片上传");
    }catch (QiniuException ex) {
        Response r = ex.response;
        System.err.println(r.toString());
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    return fileName;
}
/**
 * 上传图片
 * @param bytes 要上传图片的字节流
 * @return
 */
public  static String  uploadFile(byte[] bytes) {
    //构造一个带指定Zone对象的配置类
    Configuration cfg = new Configuration(Zone.zone0());
    //...其他参数参考类注释
    UploadManager uploadManager = new UploadManager(cfg);
    //默认不指定key的情况下,以文件内容的hash值作为文件名
    String fileName=null;
    String key = null;
    try {
        Logger.getLogger("start>>>>>>>>>>").info("图片上传");
        byte[] uploadBytes=bytes;
        ByteArrayInputStream byteInputStream=new ByteArrayInputStream(uploadBytes);
        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);
        Response response = uploadManager.put(byteInputStream,key,upToken,null, null);
        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
        //key为空时默认使用hash值作为key
        System.out.println(putRet.key);
        System.out.println(putRet.hash);
        fileName=putRet.hash;
        Logger.getLogger("end>>>>>>>>>>").info("图片上传");
    }catch (QiniuException ex) {
        Response r = ex.response;
        System.err.println(r.toString());
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    return fileName;
}
/**
 * 字节数组上传
 * @return
 */
public static String upLoadByte(byte[] data) {
    Configuration cfg = new Configuration(Zone.zone0());
    UploadManager uploadManager = new UploadManager(cfg);
    String fileName=null;
    String key = null;
    try {
        byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");
        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);
        try {
            Response response = uploadManager.put(data, key, upToken);
            //解析上传成功的结果
            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
            System.out.println(putRet.key);
            System.out.println(putRet.hash);
            fileName=putRet.hash;
        } catch (QiniuException ex) {
            Response r = ex.response;
            System.err.println(r.toString());
            try {
                System.err.println(r.bodyString());
            } catch (QiniuException ex2) {
                //ignore
            }
        }
    } catch (UnsupportedEncodingException ex) {
    }
    return fileName;
}
/**
 * 生成加签访问url
 */
public  static String getUrl(String key) {
    String finalUrl=null;
    String fileName = key;
    String encodedFileName = null;
    try {
        encodedFileName = URLEncoder.encode(fileName, "utf-8");
        String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
        Auth auth = Auth.create(accessKey, secretKey);
        long expireInSeconds = 10800;//1小时,可以自定义链接过期时间
        finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds);
     } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
     }
    System.out.println(finalUrl);
    return finalUrl;
}
/**
 * 生成加签访问url
 */
public  static String getUrl1(String key) {
    String finalUrl=null;
    String fileName = key;
    String encodedFileName = null;
    try {
        encodedFileName = URLEncoder.encode(fileName, "utf-8");
        String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
        Auth auth = Auth.create(accessKey, secretKey);
        long expireInSeconds = 10800;//1小时,可以自定义链接过期时间
        finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds);
    }
    catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    System.out.println(finalUrl);
    return finalUrl;
}
//删除上传到七牛云的图片
public static boolean deleteOnQn(String key) throws Exception {
    //密钥配置
    try {
        Auth auth = Auth.create(accessKey,secretKey);
        Configuration configuration = new Configuration(Zone.autoZone());
        BucketManager bucketManager = new BucketManager(auth,configuration);
        bucketManager.delete(bucket,key);
    } catch (QiniuException e) {
        e.printStackTrace();
        throw e;
    }
    return true;
}
登入後複製

4,需要的依赖架

<dependency>
  <groupId>com.qiniu</groupId>
  <artifactId>qiniu-java-sdk</artifactId>
  <version>7.2.11</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>3.3.1</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.6.2</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.qiniu</groupId>
  <artifactId>happy-dns-java</artifactId>
  <version>0.1.4</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
<!--七牛云图片服务器相关依赖结束-->
登入後複製

5,xml里面需要文件上传处理

<!--文件上传处理器  -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5000000"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
登入後複製

6,写上传接口的controller和service以及serviceimpl,

更多相关技术文章,请访问PHP中文网

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用Java SDK對接七牛雲資料處理:如何實現資料轉換與分析? 使用Java SDK對接七牛雲資料處理:如何實現資料轉換與分析? Jul 08, 2023 pm 10:16 PM

使用JavaSDK對接七牛雲資料處理:如何實現資料轉換與分析?概述:在雲端運算和大數據時代,資料處理是一個非常重要的環節。七牛雲提供了強大的資料處理功能,可以對儲存在七牛雲中的各種類型的檔案進行影像處理、影音處理、文字處理等。本文將介紹如何使用JavaSDK對接七牛雲的資料處理功能,並給出一些常用的程式碼範例。安裝JavaSDK首先,我們需要在專案中引入

抖音評論怎麼發圖片 抖音評論怎麼發圖片 Feb 19, 2024 pm 01:10 PM

抖音作為全球最受歡迎的短影片分享平台之一,已經吸引了數億用戶加入。在觀賞他人的精彩作品時,我們常常會被其中一些動態、有趣或有意義的瞬間所打動的。此時,我們不僅可以透過文字評論表達我們的觀點和想法,還可以透過圖片評論來更生動地表達我們的情感。那麼,在抖音上如何發表圖片評論呢?首先,打開抖音APP並進入自己感興趣的影片。接下來,我們需要根據手機作業系統的不

手把手教你使用Python對接七牛雲接口,實現音訊合併 手把手教你使用Python對接七牛雲接口,實現音訊合併 Jul 07, 2023 pm 08:40 PM

手把手教你使用Python對接七牛雲接口,實現音訊合併引言:在音訊處理的過程中,有時我們需要將多個音訊檔案合併成一個檔案。對於開發者來說,可以透過對接七牛雲接口,使用Python語言實現音訊合併功能。本文將詳細介紹如何使用Python對接七牛雲接口,實現音訊合併。步驟一:安裝依賴函式庫在使用Python對接七牛雲介面之前,我們需要先安裝對應的依賴函式庫。打開終端或命

手把手教你使用Python對接七牛雲接口,實現音訊切割 手把手教你使用Python對接七牛雲接口,實現音訊切割 Jul 05, 2023 pm 03:21 PM

手把手教你使用Python對接七牛雲接口,實現音頻切割在音頻處理領域,七牛雲是一個非常優秀的雲存儲平台,提供了豐富的接口來對音頻進行各種處理。本文將以Python為例,手把手教你如何對接七牛雲接口,實現音頻切割的功能。首先,我們需要安裝對應的Python庫,用於與七牛雲進行互動。在命令列中輸入以下命令進行安裝:pipinstallqiniu安裝完成後,我

七牛雲端資料處理管理指南:Java SDK如何實現資料操作與分析? 七牛雲端資料處理管理指南:Java SDK如何實現資料操作與分析? Jul 05, 2023 pm 12:41 PM

七牛雲端資料處理管理指南:JavaSDK如何實現資料操作與分析?引言:隨著大數據時代的到來,資料處理和分析變得越來越重要。七牛雲作為一家專注於雲端儲存和資料服務的企業,提供了豐富的資料處理和分析功能,方便使用者處理和分析大量資料。本文將介紹如何使用七牛雲的JavaSDK來實現資料操作與分析。一、準備工作在開始之前,我們需要準備一些必要的工具和環境:申請七牛雲賬

用Go語言開發七牛雲介面的整合方案 用Go語言開發七牛雲介面的整合方案 Jul 05, 2023 pm 05:53 PM

用Go語言開發七牛雲端介面的整合方案引言:隨著雲端運算的普及,越來越多的企業開始將資料儲存在雲端。七牛雲作為一家主要的雲端儲存服務供應商,為用戶提供了穩定且有效率的物件儲存服務。本文將介紹如何使用Go語言來開發七牛雲介面的整合方案,並附上程式碼範例。一、概述七牛雲的介面提供了豐富的功能,包括檔案上傳、下載、刪除、檢視檔案清單等。為了方便開發者使用這些功能,我們可以使用G

學習Python實現七牛雲介面對接,實現圖片合併功能 學習Python實現七牛雲介面對接,實現圖片合併功能 Jul 06, 2023 am 11:46 AM

學習Python實現七牛雲介面對接,實現圖片合併功能引言:近年來,隨著雲端運算技術的不斷發展,雲端儲存服務成為了解決資料儲存和備份的重要手段之一。七牛雲作為國內知名的雲端儲存服務供應商,為開發者提供了豐富的接口,方便開發者進行圖片等媒體資源的儲存與管理。本文將介紹如何使用Python語言對接七牛雲接口,並實現圖片合併功能。步驟一:安裝依賴模組在開始編碼之前,我們首

如何使用PHP將圖片從七牛雲端儲存轉換為Base64格式? 如何使用PHP將圖片從七牛雲端儲存轉換為Base64格式? Sep 05, 2023 pm 05:03 PM

如何使用PHP將圖片從七牛雲端儲存轉換為Base64格式?圖片在網路傳輸和儲存中扮演了重要的角色。七牛雲端儲存是一個廣泛使用的雲端儲存平台,提供了穩定、有效率的圖片儲存服務。有時候,我們需要將七牛雲端儲存中的圖片轉換為Base64格式,在前端展示或其他用途上使用。在本文中,我們將介紹如何使用PHP將圖片從七牛雲端儲存轉換為Base64格式。步驟一:安裝七牛雲PHPS

See all articles