thinkphp怎樣上傳服務器

對于使用thinkphp框架的開發者來說,在項目中圖片、文檔等上傳到服務器是非常常見的需求。下面將給出一些常用的上傳方法。

  1. 使用原生的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文件夾內。

  1. 使用阿里云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內。

  1. 使用七牛云存儲

七牛云存儲是一個提供數據存儲、傳輸、處理能力的云服務平臺,也可以用來存儲各種類型的文件。

在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
喜歡就支持一下吧
點贊12 分享