thinkphp는 새로 고침 없이 zyfile을 통해 Qiniu Cloud에 이미지를 업로드하고 Qiniu Cloud 아래 저장 공간의 파일 정보를 얻습니다
이전에는 zyFile을 통해 이미지를 로컬에 업로드하는 방법을 공개한 적이 있습니다. 물론 웹사이트를 만들 때 cnd를 자주 사용하기도 합니다. 그래서 Qiniu Cloud에 사진을 업로드하는 방법을 알려 드리겠습니다.
여기 Qiniuyun에게 감사 인사를 전하고 싶습니다. (돈은 필요 없습니다, 하하).
먼저 기본 구성에 대해 이야기하겠습니다. 먼저 application/index/config에서 키를 구성합니다. 이 키는 Qiniu Cloud Personal Center->Key Management에서 볼 수 있습니다. BUCKET 매개변수는 업로드하려는 저장 공간의 이름입니다. . 글쎄, 기본적으로 아무것도 변경할 필요가 없습니다.
index.php의 코드는 다음과 같습니다. <?php<br />
// +---------------------------------- --- ----------<br />
// | 뱀<br />
// +---------------------------------- --- ----------<br />
// | Copyright (c) 2016~2022 http://baiyf.com All Rights Reserved.<br />
// +---------------------------------- --- ----------<br />
// | 라이센스 부여됨( http://www.apache.org/licenses/LICENSE-2.0 )<br />
// +---------------------------------- --- ----------<br />
// | 작성자: NickBai <1902822973@qq.com><br>
// +---------------------------------- --- ----------<br>
네임스페이스 appindexcontroller;<br>
<br>
thinkController를 사용하세요.<br>
QiniuAuth를 사용하세요.<br>
QiniuStorageBucketManager를 사용하세요.<br>
QiniuStorageUploadManager를 사용하세요.<br>
<br>
클래스 인덱스 확장 컨트롤러<br>
{<br>
공용 함수 인덱스()<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>
~ require_once APP_PATH.
<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>
$접두사 =
// 마지막 열거에서 반환된 위치 표시는 이 열거의 시작점 정보로 사용됩니다. <br>
$marker =
//이번에 등록된 항목 개수<br>
//$limit = 3;<br>
<br>
//파일 목록<br>
$list = $bucketMgr->listFiles($bucket, $prefix, $marker);<br>
$list = array_filter($list);<br>
<br>
$this->할당([<br>
'목록' => $list<br>
]);<br>
<br>
return $this->fetch();<br>
}<br>
<br>
//사진 업로드<br>
공개 함수 showUpload()<br>
{<br>
return $this->fetch();<br>
}<br>
<br>
<br>//업로드를 처리하는 주요 방법<br>
공개함수 업로드()<br>
{<br>
$file = request()->file('fileList');<br>
<br>
~ require_once APP_PATH.
<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>
<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>
에코 $bucket . $key;<br>
}<br>
}<br>
}<br>열람 중인 파일이 꽤 많아서 여기에는 코드를 나열하지 않겠습니다. 그냥 다운로드해서 확인해 보세요. 물론 이 예제는 단지 단순한 데모일 뿐이며, 많은 기능이 완벽하지는 않습니다. 단지 이를 사용하려는 사람들에게 구현 아이디어를 제공할 뿐입니다. <br>
Qiniu Cloud의 SDK는 Composer를 통해 업데이트할 수 있으며, 내부 데모는 저처럼 tp5 작성으로만 변경하시면 됩니다.
좋아요, 파일 크기가 너무 큽니다! 그럼 코드를 클라우드 디스크에 넣어드릴테니 관심 있으신 분들은 가서 구경해 보세요
http://pan.baidu.com/s/1bp5etbh
내 github: https://github.com/nick-bai/