本文目錄一覽:
- 1、ueditor1.4.3 php如何上傳圖片到圖片伺服器(七牛)
- 2、ThinkPHP6上傳圖片七牛雲 如何上傳文件到七牛雲對象儲存cos
- 3、用php上傳圖片到七牛並返回url
- 4、php表單上傳圖片到七牛雲存儲並返回地址……求具體流程~有代碼更好
ueditor1.4.3 php如何上傳圖片到圖片伺服器(七牛)
現在有新版本你要的功能實現了,
UEditor1.4.3版本-直接上傳視頻、附件、圖片到七牛雲存儲,並且支持圖片在線管理功能
ThinkPHP6上傳圖片七牛雲 如何上傳文件到七牛雲對象儲存cos
ThinkPHP6 如何上傳圖片七牛雲,如何上傳文件到七牛雲對象儲存cos,總所周知圖片是特別消耗網站帶寬的,個人網站將圖片上傳至七牛雲才能顯著提升網站的響應速度,手把手交大家如何上配置ThinkPHP6上傳文件至七牛雲.
然後我們就可以使用 $url=Qiniu::upload($filePath,$filename); 傳入文件的相對路徑或絕對路徑加上文件名,在文件上傳成功後自動又將圖片上傳至七牛雲~
用php上傳圖片到七牛並返回url
我處理的過程是,圖片上傳到伺服器並進行尺寸和圖片質量壓縮,然後根據你制定的規則命個名字,初始化七牛給的那個上傳類,上傳文件,根據剛才命名和在七牛綁定的域名連接成URL並返回。代碼是寫到一個類里的,很多,不方便貼。
php表單上傳圖片到七牛雲存儲並返回地址……求具體流程~有代碼更好
有的,我最近研究了一下,寫了一篇記錄,如下
原文地址:
網上關於七牛雲存儲的教程除了官網上的API文檔,其他的資料太少了。研究了下API之後,現在已經能實現圖片的上傳和下載及上傳之後的重定向。
首先本篇文章實現的功能如下:
1.利用表單上傳功能,用戶可以點擊選擇文件按鈕,選擇本地的一個文件,同時設定上傳的圖片的名稱,點擊上傳按鈕可以上傳並存儲到七牛雲存儲。
2.在點擊上傳時會檢測文件的後綴名,限制為jpg和png格式存儲。
3.上傳成功後跳轉到自己設定的一個URL,並傳迴文件信息,如文件名。而不是顯示七牛白花花的json顯示頁面。
好啦,那我們開始吧,首先我們要有一個七牛雲存儲賬號,如果沒有的就自己去申請吧。
七牛雲存儲傳送門:
一.SDK下載
戳這個網址下載一下SDK吧,裡面封裝了文件上傳下載等等的方法,我們引入之後可以直接調用。
SDK之中有一個qiniu的文件夾,這是所有的SDK實貨,這個是最重要的。我們首先要把這個文件夾及裡面的文件放到項目文件夾中,比如我放到這裡。
大家可以看到有一個qiniu文件夾。好啦,資源支持就是這樣。接下來我們要實現代碼咯。
二.文件的上傳。
1.首先把你七牛雲存儲的密鑰照出來,點擊賬號設置可以看到有一個AccessKey和SecretKey,留著備用。
2.上傳憑證生成。
在這裡我們首先要引入rs.php文件,自己找一對應路徑,代碼如下:
require_once(dirname(__FILE__).”/../../qiniu/rs.php”);
dirname()是指的絕對路徑,有時相對路徑會出現問題,建議在前面加上dirname方法獲取絕對路徑。
require_once是引入文件,表示該文件只引入一次。
然後,傳入你的AccessKey和SecretKey
代碼如下:
$accessKey = ‘Imn35KC5pRX7Ov3scxbYkvNk6oIx7zWsBRp16’; //換成你自己的密鑰
$secretKey = ‘s29vc9tlCvs23wRh7QScYTuzCDmEroKj1ddssz’; //換成你自己的密鑰
Qiniu_SetKeys($accessKey, $secretKey);
然後建一個上傳策略對象,將你的bucket 傳入,bucket 就是你的空間名。
$bucket = ‘designpartners’;
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
然後調用此方法來生成上傳憑證。
$upToken = $putPolicy-Token(null);
接下來就寫一個html表單
form method=”post” action=”” name = “form” enctype=”multipart/form-data”
ul
input type=”hidden” id=”token” name=”token” value=?php echo $upToken?
li
label for=”key”key:/label
input name=”key” value=””
/li
li
label for=”bucket”照片:/label
input name=”file” type=”file” /
/li
li
input type=”submit” value=”提交”
/li
/ul
/form
action 就填寫 up.qiniu.com,表單提供了一個輸入框key,用來輸入你想保存的圖片名稱,上傳到七牛之後就是這個名字。
然後一個文件選擇,一個提交按鈕。運行結果如下:
輸入key值和選擇照片即可實現照片的上傳。哈哈哈有沒有很簡單。
三、文件下載
原理和文件上傳功能相仿。
引入文件
require_once(dirname(__FILE__).”/../../qiniu/rs.php”);
聲明你的七牛雲存儲域名和兩個密鑰以及向下載的文件名稱
$key = ‘00000’;
$domain = ‘designpartners.qiniudn.com’;
$accessKey = ‘IOImn35KC5p3scxbYkvNk6oIxB7zWsBRp16’;
$secretKey = ‘s29vc9tlCvs23wCDmIbUSi4EroKj1z’;
注意:1.key值即為文件名,不要加後綴
2.domain即為bucket加上qiniudn.com,例子中的designpartners就是我在上傳圖片時用的bucket名。
3.accessKey和secretKey換成你自己的,直接用我的不行的..因為我修改了.
Qiniu_SetKeys($accessKey, $secretKey);
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
$getPolicy = new Qiniu_RS_GetPolicy();
$privateUrl = $getPolicy-MakeRequest($baseUrl, null);
echo $privateUrl . “\n”;
傳入這四個值即可生成一樣url,直接訪問url即可實現圖片的下載。
在引入圖片時直接
img src = “?php echo $privateUrl; ?”/
即可引入圖片咯,很簡單的吧。
四、303重定向
在上面的方法中,我們上傳圖片成功後跳轉到up.qiniu.com下,會顯示白白的網頁,顯示一個json字元串,但是在實際網站開發中我們肯定 不能讓用戶看到這種網頁,所以我們用到了303跳轉。SDK中也為我們封裝了這個方法。使用其實非常簡單。在上傳文件的代碼中添加兩行代碼即可
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$putPolicy-ReturnUrl = site_url().”/upload/receiveInfo”;
$putPolicy-ReturnBody='{“key”: $(key)}’;
注意:1. ReturnUrl和ReturnBody必須指定,並且首字母要大寫,很多人都小寫開頭,這樣會跳轉不成功。
2.ReturnUrl必須是一個公網可以訪問的網址,在本地測試是不可能通過的。比如你寫成localhost,七牛伺服器是定位不到的。
3.這個ReturnUrl的鏈接後會跟著一個?upload_ret=XXX,可以用get方法獲取這個upload_ret。upload_ret的內容是base64安全編碼的json形式的key值。
值的解析:比如我上傳的文件名是555
upload/receiveInfo?upload_ret=eyJrZXkiOiAiNTU1In0=
網址後綴如上所示,把那個upload_ret複製下來,用base64解碼可以出現如下結果:
{“key”: “555”}
所以,我們要獲取555這個值的代碼如下,即解析代碼如下:
$upload_ret = $_GET[‘upload_ret’];
$json_ret = base64_decode($upload_ret);
$result=json_decode($json_ret);
echo “key”.$result-key;
好啦,獲取到這個key值之後,你可以選擇存到資料庫或者進行其他的操作咯。
五、上傳前文件類型的驗證
我們可以用js來驗證文件的後綴名,
在form的屬性里加上
onsubmit=”return isValidateFile(‘file’);”
加上一個js方法
script
function isValidateFile(obj) {
var extend = document.form.file.value.substring(document.form.file.value.lastIndexOf(“.”) + 1);
if (extend == “”) {
alert(“請選擇頭像”);
return false;
}
else {
if (!(extend == “jpg” || extend == “png”)) {
alert(“請上傳後綴名為jpg或png的文件!”);
return false;
}
}
return true;
}
/script
即可驗證它的類型是否合法。
附:CI代碼實現:
獲取Uptoken:
function getUptoken(){
require_once(dirname(__FILE__).”/../../qiniu/rs.php”);
//遠程存儲空間名稱
$bucket = ‘designpartners’;
$accessKey = ‘IOImn35KCRX7Ov3scvNk6oIxB7zWsBRp16’;
$secretKey = ‘s29vc9tlCvs23wRhTuzCDmIbUSi4EroKj1z’;
Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
echo site_url();
$putPolicy-ReturnUrl = site_url().”/upload/receiveInfo”;
$putPolicy-ReturnBody='{“key”: $(key)}’;
$upToken = $putPolicy-Token(null);
return $upToken;
}
文件上傳:
public function uploadPic(){
$upToken = $this-getUptoken();
$data[‘upToken’] = $upToken;
$this-load-view(‘upload’,$data);
}
303重定向解析:
public function receiveInfo(){
$upload_ret = $_GET[‘upload_ret’];
$json_ret = base64_decode($upload_ret);
$result=json_decode($json_ret);
echo “key”.$result-key;
}
文件下載:
public function downloadPic(){
require_once(dirname(__FILE__).”/../../qiniu/rs.php”);
$key = ‘00000’;
$domain = ‘designpartners.qiniudn.com’;
$accessKey = ‘IOImn35KC57Ov3scxbYkvNk6oIxB7zWsBRp16’;
$secretKey = ‘s29vc9tlCvsh7QScYTuzCDmIbUSi4EroKj1z’;
Qiniu_SetKeys($accessKey, $secretKey);
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
$getPolicy = new Qiniu_RS_GetPolicy();
$privateUrl = $getPolicy-MakeRequest($baseUrl, null);
echo “==== getPolicy result: \n”;
echo $privateUrl . “\n”;
}
表單:
script
function isValidateFile(obj) {
var extend = document.form.file.value.substring(document.form.file.value.lastIndexOf(“.”) + 1);
if (extend == “”) {
alert(“請選擇頭像”);
return false;
}
else {
if (!(extend == “jpg” || extend == “png”)) {
alert(“請上傳後綴名為jpg或png的文件!”);
return false;
}
}
return true;
}
/script
form method=”post” action=”” name = “form” enctype=”multipart/form-data” onsubmit=”return isValidateFile(‘file’);”
ul
input type=”hidden” id=”token” name=”token” value=?php echo $upToken?
li
label for=”key”key:/label
input name=”key” value=””
/li
li
label for=”bucket”照片:/label
input name=”file” type=”file” /
/li
li
input type=”submit” value=”提交”
/li
/ul
/form
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283417.html