ThinkPHP 是一款高性能的開源PHP 開發框架,內置強大的文件上傳功能。通過合理配置和代碼實現,開發者可以輕鬆實現各種文件上傳需求。本文將結合示例,深入講解在ThinkPHP 中如何完成文件上傳。
ThinkPHP 的文件上傳相關設置集中管理於配置文件config.php中。關鍵配置項如下:
// 默認上傳驅動
'upload_driver' => 'Local',
// 上傳文件保存路徑
'upload_path' => '/path/to/upload/folder/',
// 允許上傳的文件類型
'upload_allow_ext' => 'jpg,png,gif',
// 允許上傳的文件大小(位元組)
'upload_max_size' => 5242880,
各項參數解釋:
根據項目需求,可以調整配置,比如:
'upload_path' => 'public/uploads/',
'upload_allow_ext' => 'jpg,jpeg,png',
'upload_max_size' => 5242880,
需要在前端頁面準備一個支持文件上傳的表單,示例如下:
<form method="POST" enctype="multipart/form-data" action="{:url('upload')}">
<input type="file" name="file" />
<button type="submit">上傳文件</button>
</form>
其中enctype="multipart/form-data"是文件上傳表單必需的屬性,確保數據以二進制格式傳輸。
在控制器中編寫文件上傳處理方法,如下示例:
namespace app\index\controller;
use think\Controller;
use think\facade\Request;
class Upload extends Controller
{
public function upload()
{
$file = Request::file('file');
// 驗證文件大小和類型並移動
$result = $file->validate(['size' => 5242880, 'ext' => 'jpg,jpeg,png'])->move('public/uploads/');
if ($result) {
// 上傳成功
echo '文件上傳成功:' . $result->getSaveName();
} else {
// 上傳失敗
echo '文件上傳失敗:' . $file->getError();
}
}
}
以上代碼先獲取上傳文件,進行大小和類型校驗,成功後將文件保存到指定目錄,並返回結果。
通過合理配置和簡單代碼,在ThinkPHP 框架中實現文件上傳功能非常便捷。本文介紹了配置文件設置、前端表單編寫以及後台上傳處理完整流程,幫助開發者快速掌握上傳開發要點。