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

作者:辰風沐陽 閱讀:1732 發(fā)布時間:2020-07-08 上次更新:2020-07-09

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

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

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

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

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

標簽: ThinkPHP TP6.0