红穆笔记
首頁 踩坑總結 七牛雲的對象存儲PHP如何上傳文件?上傳文件的時候如何對圖片進行壓縮?
踩坑總結

七牛雲的對象存儲PHP如何上傳文件?上傳文件的時候如何對圖片進行壓縮?

七牛云的对象存储PHP如何上传文件?上传文件的时候如何对图片进行压缩?

最近有一個圖片站,無奈之下選擇了對象存儲。

在看了官方文檔後,終於寫出了自己需要的東西,現在做一下總結!

七牛雲的對象存儲如何上傳文件?

首先在項目裏面引入官方提供的SDK文件。

然後PHP引入,直接寫代碼,由於業務的保密性所以我只公開上傳部分的代碼!

<?php
require './vendor/autoload.php';
require('../action/class/common.php');

$file = glob('./up/*.png');

$filename = basename($file[0]);
$locfile  = $file[0];
$yunfilenam = 'score/'.$filename;

use Qiniu\Auth;
 // 引入上傳類
use Qiniu\Storage\UploadManager;
  // 用於簽名的公鑰和私鑰
$accessKey = '';
$secretKey = '';
$bucket = '';
  // 初始化籤權對象
$auth = new Auth($accessKey, $secretKey);
// 計算文件大小,生成壓縮率
$filesize = filesize($locfile); // 獲取文件大小,單位爲字節
$targetSize = 100 * 1024;
if ($filesize < 100 * 1024 && $filesize > 80 * 1024) {
    $water = 75; // 文件小於100KB,設置$water爲75
} else {
    $water = intval(($targetSize / $filesize) * 100); 
}

$expires = 3600;
//持久化數據處理的上傳憑證
$saveJpgEntry = \Qiniu\base64_urlSafeEncode($bucket . ":{$yunfilenam}");
$vframeJpgFop = "imageView2/0/format/jpg/q/{$water}|imageslim|saveas/" . $saveJpgEntry;
$policy = array(
    'scope' => $bucket . ':' . $filename,
    'persistentOps' => $vframeJpgFop,
    'insertOnly'    => 0,
    'persistentPipeline' => "",
);
$token = $auth->uploadToken($bucket, null, $expires, $policy, true);

// print_r($token);die;
// 初始化 UploadManager 對象並進行文件的上傳。
$uploadMgr = new UploadManager();
// 調用 UploadManager 的 putFile 方法進行文件的上傳。
list($ret, $err) = $uploadMgr->putFile($token, $yunfilenam, $locfile, null, 'application/octet-stream', true, null, 'v2');
echo "\n====> putFile result: \n";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);    
}

代碼解讀:

這段代碼是一個PHP腳本,首先引入了兩個類庫文件:autoload.phpcommon.php,這些類庫文件可能實現了一些基礎功能。然後使用glob()函數選擇了./up/目錄下的所有.png文件,選取其中第一個文件的文件名並保存到變量$filename中。

接下來通過七牛雲的SDK實現了圖片的上傳。首先需要準備好七牛雲的訪問密鑰、空間名等信息,然後初始化Auth對象,生成上傳憑證$token。根據文件大小,設置了壓縮率$water,並將上傳參數封裝到了數組$policy中,包括空間名、文件名、持久化數據處理等。最終調用UploadManager對象的putFile()方法進行文件上傳,並根據返回結果判斷是否上傳成功。如果成功,將文件名插入到MySQL數據庫中,並將文件從./up/目錄移動到./bak/目錄並輸出操作結果。

總之,這段代碼的功能是將./up/目錄下的第一個.png文件上傳到七牛雲空間中並進行壓縮處理,同時將文件名插入到MySQL數據庫中,最終將文件移動到./bak/目錄。

上傳文件的時候如何對圖片進行壓縮?

在上面的代碼中:

$expires = 3600;
//持久化數據處理的上傳憑證
$saveJpgEntry = \Qiniu\base64_urlSafeEncode($bucket . ":{$yunfilenam}");
$vframeJpgFop = "imageView2/0/format/jpg/q/{$water}|imageslim|saveas/" . $saveJpgEntry;
$policy = array(
    'scope' => $bucket . ':' . $filename,
    'persistentOps' => $vframeJpgFop,
    'insertOnly'    => 0,
    'persistentPipeline' => "",
);

這個部分就是對圖片進行處理的部分,壓縮圖片,並且覆蓋圖片。

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

七牛云对象存储实现PHP简单的上传

七牛雲對象存儲實現PHP簡單的上傳 踩坑總結

七牛雲對象存儲實現簡單的上傳官網文檔裏面也有上傳代碼,下面的代碼只需要自己填上自己的密鑰和存儲空間名就可以進行上傳文件測試。&lt;?php require 'vendor/autoload.php'; use Qiniu\Auth; // 引入上傳類 use Qiniu\Storage\Uploa…
👁 193
七牛云对象存储PHP如何将文件从私人空间下载?

七牛雲對象存儲PHP如何將文件從私人空間下載? 踩坑總結

要從七牛雲對象存儲的私人空間下載文件,需要先獲取該文件的下載鏈接。可以通過以下步驟來獲取:獲取私人空間的下載域名在七牛雲後臺中,選擇對應的存儲空間,進入“域名設置”頁,找到私有空間的下載域名(如:http(s)://&lt;domain&gt;),記下該地址備用。生成下載鏈接使用七牛雲 PHP SD…
👁 179
七牛云对象存储开启私人空间后,又开启了时间戳防盗链,如何用PHP获取下载链接?

七牛雲對象存儲開啓私人空間後,又開啓了時間戳防盜鏈,如何用PHP獲取下載鏈接? 踩坑總結

就是這玩意,很好用的!七牛雲對象存儲開啓私人空間後,又開啓了時間戳防盜鏈,如何獲取下載鏈接?當七牛雲對象存儲的私人空間開啓了時間戳鑑定後,獲取下載鏈接需要在生成臨時下載鏈接時加入時間戳參數。以下是具體步驟:獲取私人空間的下載域名在七牛雲後臺中,選擇對應的存儲空間,進入“域名設置”頁,找到私有空間的下…
👁 212
cdn回源流量这是什么意思?

cdn回源流量這是什麼意思? 踩坑總結

CDN回源流量是指當用戶請求訪問位於CDN(內容分發網絡)節點上的內容時,如果該節點上沒有緩存該內容或緩存內容已過期,CDN會向源服務器發送請求,獲取原始內容,並通過網絡將內容傳輸回CDN節點,最後再傳送給用戶。這個過程中涉及到的數據傳輸量就是回源流量。CDN的主要作用是將內容緩存在離用戶較近的節點…
👁 342
对象存储里面,外网流出流量有什么什么意思

對象存儲裏面,外網流出流量有什麼什麼意思 踩坑總結

在對象存儲中,外網流出流量指的是從對象存儲服務中的數據中心流出到公共互聯網的數據傳輸量。當用戶從對象存儲中下載或訪問存儲的對象時,會產生外網流出流量。外網流出流量的計算通常基於數據傳輸的總量,以字節爲單位進行計算。這包括通過HTTP、HTTPS、FTP等協議向用戶傳輸的數據量。外網流出流量的產生主要…
👁 476

推薦閱讀

酒店宾馆客房类网站模板 0234

酒店賓館客房類網站模板 0234 實用收藏 易優模板

一款針對酒店、賓館與客房類行業的eyoucms網站模板。設計風格溫馨舒適,能夠展示酒店環境、客房設施、服務項目及在線預訂。有助於酒店賓館在線上吸引遊客,提升品牌知名度。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS…
👁 49
(PC+WAP)袜子生产厂家网站pbootcms模板 定制针织袜业网站源码下载 0118

(PC+WAP)襪子生產廠家網站pbootcms模板 定製針織襪業網站源碼下載 0118 實用收藏 pbootcms模板

一款專注於襪子生產與針織襪業定製的PbootCMS網站模板,支持PC與WAP端。設計風格時尚簡約,能夠展示各類襪子產品與定製工藝。有助於襪業工廠或品牌商在線上搭建官方展示平臺,拓展批發與零售渠道。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www…
👁 40
家纺家居装饰类网站模板 0905

家紡家居裝飾類網站模板 0905 實用收藏 易優模板

一款針對家紡與家居裝飾行業的eyoucms網站模板。設計風格溫馨實用,能夠展示家紡產品、家居裝飾、軟裝搭配及品牌形象。有助於家紡品牌在線上展示產品,吸引家庭消費者。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(E…
👁 39
(自适应手机端)车牌智能识别系统类网站pbootcms模板 停车场系统网站源码下载 0760

(自適應手機端)車牌智能識別系統類網站pbootcms模板 停車場系統網站源碼下載 0760 實用收藏 pbootcms模板

一款車牌智能識別與停車場系統PbootCMS網站模板,支持PC與WAP端。設計風格科技專業,適合展示車牌識別、門禁系統、智慧停車解決方案。有助於智能安防企業在線上展示產品,吸引物業管理與市政客戶。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www…
👁 43
响应式灯饰照明吊灯网站模板 0235

響應式燈飾照明吊燈網站模板 0235 實用收藏 易優模板

此套eyoucms響應式模板適用於燈飾照明與吊燈行業,設計風格現代明亮,能夠展示燈飾產品、照明設計方案、工程案例及品牌形象。有助於照明品牌在線上展示產品,吸引工程與家裝客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優…
👁 48