ThinkPHP6.0 判斷是否有文件上傳


有必要考慮不是post請求或沒有指定enctype="multipart/form-data"的情況。如果是post請求還是設置了正確的編碼,沒有文件上傳時 request()->file('文件字段域') 會拋出異常,捕獲該異常即可。

ThinkPHP6.0 判斷是否有文件上傳

// 捕獲異常
try {
    // 此時可能會報錯
    // 比如:上傳的文件過大,超出了配置文件中限制的大小
    $file = request()->file('img');
    // 如果表單沒有設置文件上傳需要的編碼 $file始終是null
    if (is_null($file)) {
        // 請檢查請求類型和表單編碼
        // 不是post請求或沒有指定enctype="multipart/form-data"會進入這里
        throw new \think\Exception('沒有文件上傳');
    }
} catch (\think\Exception $e) {
    // 獲取異常錯誤信息
    halt($e->getMessage());
}

如果表單請求類型是 get或沒有指定 enctype="multipart/form-data"

request()->file('img');//始終返回 null
<form action="" method="post">
	<input type="file" name="img">
	<button>立即上傳</button>
</form>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM