真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

zblog七牛 zblog七牛云存儲

php表單上傳圖片到七牛云存儲并返回地址……求具體流程~有代碼更好

有的,我最近研究了一下,寫了一篇記錄,如下

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了上蔡免費建站歡迎大家使用!

原文地址:

網(wǎng)上關(guān)于七牛云存儲的教程除了官網(wǎng)上的API文檔,其他的資料太少了。研究了下API之后,現(xiàn)在已經(jīng)能實現(xiàn)圖片的上傳和下載及上傳之后的重定向。

首先本篇文章實現(xiàn)的功能如下:

1.利用表單上傳功能,用戶可以點擊選擇文件按鈕,選擇本地的一個文件,同時設(shè)定上傳的圖片的名稱,點擊上傳按鈕可以上傳并存儲到七牛云存儲。

2.在點擊上傳時會檢測文件的后綴名,限制為jpg和png格式存儲。

3.上傳成功后跳轉(zhuǎn)到自己設(shè)定的一個URL,并傳回文件信息,如文件名。而不是顯示七牛白花花的json顯示頁面。

好啦,那我們開始吧,首先我們要有一個七牛云存儲賬號,如果沒有的就自己去申請吧。

七牛云存儲傳送門:

一.SDK下載

戳這個網(wǎng)址下載一下SDK吧,里面封裝了文件上傳下載等等的方法,我們引入之后可以直接調(diào)用。

SDK之中有一個qiniu的文件夾,這是所有的SDK實貨,這個是最重要的。我們首先要把這個文件夾及里面的文件放到項目文件夾中,比如我放到這里。

大家可以看到有一個qiniu文件夾。好啦,資源支持就是這樣。接下來我們要實現(xiàn)代碼咯。

二.文件的上傳。

1.首先把你七牛云存儲的密鑰照出來,點擊賬號設(shè)置可以看到有一個AccessKey和SecretKey,留著備用。

2.上傳憑證生成。

在這里我們首先要引入rs.php文件,自己找一對應(yīng)路徑,代碼如下:

require_once(dirname(__FILE__)."/../../qiniu/rs.php");

dirname()是指的絕對路徑,有時相對路徑會出現(xiàn)問題,建議在前面加上dirname方法獲取絕對路徑。

require_once是引入文件,表示該文件只引入一次。

然后,傳入你的AccessKey和SecretKey

代碼如下:

$accessKey?=?'Imn35KC5pRX7Ov3scxbYkvNk6oIx7zWsBRp16';??//換成你自己的密鑰

$secretKey?=?'s29vc9tlCvs23wRh7QScYTuzCDmEroKj1ddssz';????//換成你自己的密鑰

Qiniu_SetKeys($accessKey, $secretKey);

然后建一個上傳策略對象,將你的bucket?傳入,bucket 就是你的空間名。

$bucket = 'designpartners';

$putPolicy = new Qiniu_RS_PutPolicy($bucket);

然后調(diào)用此方法來生成上傳憑證。

$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點抗 ,表單提供了一個輸入框key,用來輸入你想保存的圖片名稱,上傳到七牛之后就是這個名字。

然后一個文件選擇,一個提交按鈕。運行結(jié)果如下:

輸入key值和選擇照片即可實現(xiàn)照片的上傳。哈哈哈有沒有很簡單。

三、文件下載

原理和文件上傳功能相仿。

引入文件

require_once(dirname(__FILE__)."/../../qiniu/rs.php");

聲明你的七牛云存儲域名和兩個密鑰以及向下載的文件名稱

$key?=?'00000';

$domain?=?'designpartners.qiniudn點抗 ';

$accessKey?=?'IOImn35KC5p3scxbYkvNk6oIxB7zWsBRp16';

$secretKey?=?'s29vc9tlCvs23wCDmIbUSi4EroKj1z';

注意:1.key值即為文件名,不要加后綴

2.domain即為bucket加上qiniudn點抗 ,例子中的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即可實現(xiàn)圖片的下載。

在引入圖片時直接

img src = "?php echo $privateUrl; ?"/

即可引入圖片咯,很簡單的吧。

四、303重定向

在上面的方法中,我們上傳圖片成功后跳轉(zhuǎn)到up.qiniu點抗 下,會顯示白白的網(wǎng)頁,顯示一個json字符串,但是在實際網(wǎng)站開發(fā)中我們肯定 不能讓用戶看到這種網(wǎng)頁,所以我們用到了303跳轉(zhuǎn)。SDK中也為我們封裝了這個方法。使用其實非常簡單。在上傳文件的代碼中添加兩行代碼即可

$putPolicy?=?new?Qiniu_RS_PutPolicy($bucket);

$putPolicy-ReturnUrl?=?site_url()."/upload/receiveInfo";

$putPolicy-ReturnBody='{"key":?$(key)}';

注意:1.?ReturnUrl和ReturnBody必須指定,并且首字母要大寫,很多人都小寫開頭,這樣會跳轉(zhuǎn)不成功。

2.ReturnUrl必須是一個公網(wǎng)可以訪問的網(wǎng)址,在本地測試是不可能通過的。比如你寫成localhost,七牛服務(wù)器是定位不到的。

3.這個ReturnUrl的鏈接后會跟著一個?upload_ret=XXX,可以用get方法獲取這個upload_ret。upload_ret的內(nèi)容是base64安全編碼的json形式的key值。

值的解析:比如我上傳的文件名是555

upload/receiveInfo?upload_ret=eyJrZXkiOiAiNTU1In0=

網(wǎng)址后綴如上所示,把那個upload_ret復(fù)制下來,用base64解碼可以出現(xiàn)如下結(jié)果:

{"key": "555"}

所以,我們要獲取555這個值的代碼如下,即解析代碼如下:

$upload_ret?=?$_GET['upload_ret'];

$json_ret?=?base64_decode($upload_ret);

$result=json_decode($json_ret);

echo?"key".$result-key;

好啦,獲取到這個key值之后,你可以選擇存到數(shù)據(jù)庫或者進行其他的操作咯。

五、上傳前文件類型的驗證

我們可以用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代碼實現(xiàn):

獲取Uptoken:

function?getUptoken(){

require_once(dirname(__FILE__)."/../../qiniu/rs.php");

//遠(yuǎn)程存儲空間名稱

$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點抗 ';

$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

七牛云的私有空間的文件怎么下載?

七牛云存儲可以方便的將網(wǎng)站的圖片等數(shù)據(jù)鏡像到七牛云存儲的空間,直接從云端將數(shù)據(jù)返回給用戶。這樣可以大大節(jié)省網(wǎng)站的空間,提升網(wǎng)站的訪問速度。真正顯示一鍵實現(xiàn)WordPress博客靜態(tài)文件CDN加速。下面主要介紹一下WordPress中七牛云存儲插件的使用。

工具/原料

WordPress中七牛云存儲的插件

方法/步驟

首先需要申請七牛云存儲的賬號,申請好后,點擊創(chuàng)建空間,選擇空間類型為公開空間,提交。

配置空間,點擊一鍵加速網(wǎng)站。鏡像源填寫自己網(wǎng)站域名。確認(rèn)加速。

接下來在WordPress后臺選擇添加我愛水煮魚的“WPJAM 七牛鏡像存儲”插件并啟用。進入插件的基本設(shè)置頁面。

七牛綁定的域名:就是我們上面獲取的:。

*注意:如果博客安裝的是在子目錄下,比如

,這里

也需要帶上子目錄

/blog。比如:

七牛空間名:設(shè)置為我們一開始設(shè)置的wptest

ACCESS

KEY 和SCRET

KEY:可以在七牛后臺賬戶設(shè)置密鑰頁面獲取。

其他設(shè)置默認(rèn)即可。

LivePhoto

七牛云圖片處理實踐之LIVE PHOTO|國內(nèi)首家支持

???

???

什么是Live Photo?

在當(dāng)前蘋果發(fā)布的iPhone6s和iPhone6s Plus手機上,支持使用相機拍攝 Live Photos 動態(tài)照片,并且還會有聲音。當(dāng)然對于沒有 iPhone6s 的用戶,只要是升級到了 iOS9 系統(tǒng),雖然不能拍攝 Live Photos 照片,但可以查看他人發(fā)來的Live Photos 照片。

Live Photo 由一張 JPG 圖片以及一個 45 格 MOV 影片檔所組成。在播放Live Photo 時,這段 MOV 則以 15 格 / 秒的速度來播放。因為結(jié)合了圖片與影片,因此一個 Live Photo 相當(dāng)于一張普通圖片的 2 倍大小。

Live Photo 的優(yōu)勢

很多人認(rèn)為Live Photo和GIF沒有什么區(qū)別,不過存在即是合理。Live Photo有很多的優(yōu)勢,它可以像圖片一樣相互傳播,相較于短視頻它體積更小,與GIF相比它的畫質(zhì)質(zhì)量要高一些,而且音畫組合的方式使得圖片擁有了更多的信息??梢哉f,Live Photo的出現(xiàn)很好的解決了用戶需要在視頻預(yù)覽中截圖的問題。

Live Photo與普通照片一樣,也經(jīng)過嚴(yán)格的加密,除非是用戶分享或是使用iCloud,Live Photo將只能存儲在本機上。目前,蘋果向第三方開發(fā)者開放了LivePhoto的API接口,現(xiàn)在已經(jīng)有很多的社交軟件開始支持LivePhoto,像Facebook,還有第三方微博客戶端的墨客,美顏相機Biu等。

七牛初探Live Photo

現(xiàn)在各大社交應(yīng)用紛紛推出支持Live Photo。在運營七牛產(chǎn)品過程中,我們發(fā)現(xiàn)越來越多的客戶如社交類、分享平臺、壁紙制作、漫畫等有對Live Photo的需求。我們開始嘗試做Live Photo的支持工作,并且已經(jīng)取得進展,成為國內(nèi)首個支持Live Photo功能的云服務(wù)企業(yè)。

客戶的問題

Live Photo在傳統(tǒng)意義上是由兩個文件組成,一個是預(yù)覽的jpg,一個是播放的視頻mov。這樣在數(shù)據(jù)上傳的時候是兩種不同的文件類型,但是在用Live Photo中無法直接分離出單個的jpg和mov文件來上傳,如果直接用Live Photo上傳使用,在其他設(shè)備上又無法直接分解讀取,用PHAsset,目前只能得到image數(shù)據(jù),但是video數(shù)據(jù)無法得到。

有很多用戶需要在非iOS設(shè)備上查看類似Live Photo的效果,如安卓設(shè)備。但目前安卓還不支持mov的播放,雖然微博iOS版在年前就已經(jīng)宣布支持Live Photo,安卓版依然只能查看相應(yīng)的圖片,而沒有相應(yīng)的視頻播放。


當(dāng)前文章:zblog七牛 zblog七牛云存儲
文章源于:http://weahome.cn/article/ddgchsi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部