thinkphp lädt Bilder ohne Aktualisierung über zyfile in die Qiniu Cloud hoch und ruft Dateiinformationen im Speicherplatz unter der Qiniu Cloud ab
Zuvor haben wir über zyFile eine Methode zum Hochladen von Bildern auf den lokalen Server veröffentlicht. Natürlich verwenden wir beim Erstellen von Websites häufig cnd. Daher werde ich Ihnen eine Möglichkeit vorstellen, Bilder in die Qiniu Cloud hochzuladen.
Ich möchte mich hier bei Qiniuyun bedanken (kein Geld erforderlich, haha).
Lassen Sie uns zunächst über die Grundkonfiguration sprechen. Konfigurieren Sie zunächst die Schlüssel unter application/index/config. Diese Schlüssel können im Qiniu Cloud Personal Center angezeigt werden. Der BUCKET-Parameter ist der Name des gewünschten Speicherplatzes hochladen. . Nun, im Grunde besteht keine Notwendigkeit, etwas zu ändern.
Der Code von index.php lautet wie folgt: <?php<br />
//------------------------------------------------ ---------<br />
// |. Schlange<br />
//------------------------------------------------ ---------<br />
// |. Copyright (c) 2016~2022 http://baiyf.com Alle Rechte vorbehalten.<br />
//------------------------------------------------ ---------<br />
// |. Lizenziert ( http://www.apache.org/licenses/LICENSE-2.0 )<br />
//------------------------------------------------ ---------<br />
// |. Autor: NickBai <1902822973@qq.com><br>
//------------------------------------------------ ---------<br>
Namespace appindexcontroller;<br>
<br>
Verwenden Sie thinkController;<br>
Verwenden Sie QiniuAuth;<br>
Verwenden Sie QiniuStorageBucketManager;<br>
Verwenden Sie QiniuStorageUploadManager;<br>
<br>
Klassenindex erweitert Controller<br>
{<br>
Öffentlicher Funktionsindex()<br>
{<br>
return $this->fetch('/index');<br>
}<br>
<br>
/**<br>
* *Backend-Standard-Homepage<br>
* @return gemischt<br>
*/<br>
Öffentliche Funktion indexPage()<br>
{<br>
return $this->fetch('index');<br>
}<br>
<br>
/**<br>
* * Alle Bilder im Cloud-Speicher<br>
* @return gemischt<br>
*/<br>
Öffentliche Funktion picList()<br>
{<br>
require_once APP_PATH.
<br>
$accessKey = config('ACCESSKEY');<br>
$secretKey = config('SECRETKEY');<br>
<br>
$auth = new Auth($accessKey, $secretKey);<br>
$bucketMgr = new BucketManager($auth);<br>
<br>
//Der Name des aufzulistenden Bereichs<br>
$bucket = config('BUCKET');<br>
// Öffentliches Präfix der aufzulistenden Dateien <br>
$prefix =
// Die von der letzten Aufzählung zurückgegebene Positionsmarkierung wird als Startpunktinformation dieser Aufzählung verwendet. <br>
$marker =
// Anzahl der diesmal aufgelisteten Artikel <br>
//$limit = 3;<br>
<br>
//Dateien auflisten<br>
$list = $bucketMgr->listFiles($bucket, $prefix, $marker);<br>
$list = array_filter($list);<br>
<br>
$this->assign([<br>
'list' => $list<br>
]);<br>
<br>
return $this->fetch();<br>
}<br>
<br>
//Bilder hochladen<br>
Öffentliche Funktion showUpload()<br>
{<br>
return $this->fetch();<br>
}<br>
<br>
<br>//Hauptmethode zur Verarbeitung des Uploads<br>
Öffentliche Funktion upload()<br>
{<br>
$file = request()->file('fileList');<br>
<br>
require_once APP_PATH.
<br>
//Sie müssen Ihren Zugangsschlüssel und Ihren Geheimschlüssel eingeben<br>
$accessKey = config('ACCESSKEY');<br>
$secretKey = config('SECRETKEY');<br>
//Authentifizierungsobjekt erstellen<br>
$auth = new Auth($accessKey, $secretKey);<br>
<br>
// Platz zum Hochladen <br>
$bucket = config('BUCKET');<br>
<br>
// Upload-Token generieren<br>
$token = $auth->uploadToken($bucket);<br>
<br>
// Lokaler Pfad zum Hochladen der Datei <br>
$filePath = $file->getRealPath();<br>
<br>
$ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION<br>
<br>
//Der nach dem Hochladen auf Qiniu gespeicherte Dateiname<br>
$key = substr(md5($file->getRealPath()), 0, 5 rand(0, 9999)
<br>
// Das UploadManager-Objekt initialisieren und Dateien hochladen<br>
$uploadMgr = new UploadManager();<br>
<br>
// Rufen Sie die putFile-Methode von UploadManager auf, um Dateien hochzuladen <br>
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);<br>
If ($err !== null) {<br>
var_dump($err);<br>
} sonst {<br>
echo $bucket . '/' $key;<br>
}<br>
}<br>
}<br>Unter der Ansicht befinden sich ziemlich viele Dateien, daher werde ich den Code hier nicht auflisten. Laden Sie ihn einfach herunter und schauen Sie sich ihn an. Dieses Beispiel ist nur eine einfache Demonstration. Natürlich sind viele Funktionen nicht perfekt. Es bietet nur eine Implementierungsidee für Leute, die dies verwenden möchten. <br>
Das SDK von Qiniu Cloud kann über Composer aktualisiert werden, und die darin enthaltene Demo kann alle Ihre Anforderungen erfüllen. Sie müssen es nur wie ich auf TP5 umstellen.
Okay, die Dateigröße ist zu groß! Dann lege ich den Code in die Cloud-Disk. Wenn Sie interessiert sind, können Sie einen Blick darauf werfen
http://pan.baidu.com/s/1bp5etbh
Mein Github: https://github.com/nick-bai/