thinkphp は、zyfile を介して更新せずに Qiniu Cloud に写真をアップロードし、Qiniu Cloud 下のストレージ領域にあるファイル情報を取得します
以前、zyFileを使ってローカルに写真をアップロードする方法を公開しました もちろんWebサイトを作る際にはcndを使います。そこで、Qiniu Cloudに写真をアップロードする方法を紹介します。
ここで Qiniuyun に感謝したいと思います (お金は必要ありません、笑)。
まず、基本的な構成について説明します。まず、application/index/config でキーを構成します。これらのキーは、Qiniu Cloud Personal Center で表示できます。BUCKET パラメーターは、必要なストレージ スペースの名前です。アップロード。 。まあ、基本的には何も変える必要はありません。
Index.php のコードは次のとおりです: <?php<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | ヘビ<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | 著作権 (c) 2016~2022 http://baiyf.com 無断複写・転載を禁じます<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | ライセンス済み ( http://www.apache.org/licenses/LICENSE-2.0 )<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | 著者: ニックバイ <1902822973@qq.com><br />
// +---------------------------------------------- --- ----------------------------------<br />
名前空間 appindexcontroller;<br />
<br />
thinkController を使用します;<br />
QiniuAuth を使用します;<br />
QiniuStorageBucketManager を使用します;<br />
QiniuStorageUploadManager を使用します;<br />
<br />
クラスインデックスはコントローラーを拡張します<br />
{<br />
パブリック関数index()<br />
{<br />
return $this->fetch('/index');<br />
}<br />
<br />
/**<br />
* *バックグラウンドのデフォルトのホームページ<br />
* * @return 混合<br />
*/<br />
パブリック関数indexPage()<br />
{<br />
return $this->fetch('index');<br />
}<br />
<br />
/**<br />
* *すべての写真はクラウドストレージに保存されています<br />
* * @return 混合<br />
*/<br />
パブリック関数 picList()<br />
{<br />
。
<br />
$accessKey = config('ACCESSKEY');<br />
$secretKey = config('SECRETKEY');<br />
<br />
$auth = 新しい認証($accessKey, $secretKey);<br />
$bucketMgr = 新しい BucketManager($auth);<br />
<br />
//リストされるスペースの名前<br />
$bucket = config('BUCKET');<br />
//ファイルのパブリックプレフィックスをリストするには<br />
$prefix =
// 最後の列挙から返された位置マークは、この列挙の開始点情報として使用されます。 <br />
$mark =
//今回の出品数<br />
//$limit = 3;<br />
<br />
// ファイルをリストします<br />
$list = $bucketMgr->listFiles($bucket, $prefix, $marker);<br>
$list = array_filter($list);<br>
<br>
$this->assign([<br>
「リスト」=>$リスト<br>
]);<br>
<br>
return $this->fetch();<br>
}<br>
<br>
//写真をアップロードします<br>
パブリック関数 showUpload()<br>
{<br>
return $this->fetch();<br>
}<br>
<br>
<br>//アップロード処理のメインメソッド<br>
パブリック関数upload()<br>
{<br>
$file = request()->file('fileList');<br>
<br>
。
<br>
//アクセスキーとシークレットキーを入力する必要があります<br>
$accessKey = config('ACCESSKEY');<br>
$secretKey = config('SECRETKEY');<br>
// 認証オブジェクトを構築します<br>
$auth = 新しい認証($accessKey, $secretKey);<br>
<br>
// アップロードするスペース<br>
$bucket = config('BUCKET');<br>
<br>
// トークンを生成してアップロードします<br>
$token = $auth->uploadToken($bucket);<br>
<br>
// ファイルをアップロードするローカルパス<br>
$filePath = $file->getRealPath();<br>
<br>
$ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION);
<br>
//Qiniuにアップロード後に保存されたファイル名<br>
$key = substr(md5($file->getRealPath()), 0, 5) . rand(0, 9999) .
<br>
// UploadManager オブジェクトを初期化し、ファイルをアップロードします<br>
$uploadMgr = new UploadManager();<br>
<br>
// UploadManager の putFile メソッドを呼び出してファイルをアップロードします<br>
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);<br>
If ($err !== null) {<br>
var_dump($err);<br>
else {<br>
$バケット '/' をエコーします。
}<br>
}<br>
}<br>かなり多くのファイルが表示されているため、ここではコードをリストしません。ダウンロードして近くで確認してください。もちろん、この例は単なるデモであり、多くの機能が完璧ではありません。これを使用したい人に実装のアイデアを提供しているだけです。 <br>
<br>
Qiniu Cloud の SDK は Composer を通じて更新でき、内部のデモは私のように tp5 の書き込みに変更するだけですべてのニーズを満たすことができます。 <br>
ファイルサイズが大きすぎます。次に、コードをクラウドディスクに置きますので、興味のある方は覗いてみてください
http://pan.baidu.com/s/1bp5etbh
私のgithub: https://github.com/nick-bai/