對于使用thinkphp框架的開發者來說,在項目中圖片、文檔等上傳到服務器是非常常見的需求。下面將給出一些常用的上傳方法。
- 使用原生的PHP上傳方式
在thinkphp框架中,我們可以直接使用原生PHP的上傳方式,具體代碼如下:
public function upload() { $file = request()->file(‘image’); // 移動到框架應用根目錄/public/uploads/ 目錄下 $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if($info){ // 成功上傳后 獲取上傳信息 echo $info->getFilename(); }else{ // 上傳失敗獲取錯誤信息 echo $file->getError(); } }
此方法比較簡單,直接將上傳的文件移動到服務器根目錄下的public/uploads文件夾內。
- 使用阿里云OSS存儲
阿里云OSS(Ojbect Storage Service)是一種海量、安全、低成本的云存儲服務,可以用來存儲各種類型的文件,包括圖片、視頻、音頻、文檔等。
在ThinkPHP中,我們可以使用阿里云OSS SDK實現文件上傳,具體代碼如下:
立即學習“PHP免費學習筆記(深入)”;
public function upload() { $file = request()->file(‘image’); // 實例化阿里云OSS $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $bucket = 'your-bucket-name'; // 上傳到阿里云OSS $object = 'uploads/'.$file->getFilename(); $file = $file->getInfo()['tmp_name']; $ossClient->uploadFile($bucket, $object, $file); }
此方法可以更加安全地存儲文件,并且可以將文件上傳到指定的Bucket內。
- 使用七牛云存儲
七牛云存儲是一個提供數據存儲、傳輸、處理能力的云服務平臺,也可以用來存儲各種類型的文件。
在ThinkPHP中,我們可以使用七牛云SDK實現文件上傳,具體代碼如下:
public function upload() { $file = request()->file(‘image’); // 實例化七牛云 $auth = new Auth($accessKey, $secretKey); $token = $auth->uploadToken($bucket); $uploadMgr = new UploadManager(); // 上傳到七牛云 $key = 'uploads/'.$file->getFilename(); $filePath = $file->getInfo()['tmp_name']; list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); }
此方法同樣可以更加安全地存儲文件,并且可以定制上傳策略和上傳回調函數。
總結:
以上介紹了三種常用的文件上傳方法,使用原生的PHP上傳方式直接將文件上傳到服務器,而使用阿里云OSS和七牛云存儲則可以更加安全地保存文件,并且支持更多的定制化需求。開發者可以根據自己的具體需求選擇合適的上傳方式。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END