上傳文件這塊需要優化

瀏覽:85 發布日期:2019/05/27 分類:ThinkPHP6專區
對于判斷上傳的文件為空的需求不能很好的滿足,感覺需要調整下。

先來看看前端代碼。我不選擇文件,直接提交<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="icon">
<button type="submit">提交</button>
</form>
后端使用Request::has()判斷返回真halt(Request::has('icon', 'file', true)); // bool(true)在has()方法內斷點    public function has(string $name, string $type = 'param', bool $checkEmpty = false): bool
    {
        if (!in_array($type, ['param', 'get', 'post', 'put', 'patch', 'route', 'delete', 'cookie', 'session', 'env', 'request', 'server', 'header', 'file'])) {
            return false;
        }

        $param = empty($this->$type) ? $this->$type() : $this->$type;

        // 斷點
        halt($param);

        if (is_object($param)) {
            return $param->has($name);
        }

        // 按.拆分成多維數組進行判斷
        foreach (explode('.', $name) as $val) {
            if (isset($param[$val])) {
                $param = $param[$val];
            } else {
                return false;
            }
        }

        return ($checkEmpty && '' === $param) ? false : true;
    }
返回array(1) {
  ["icon"] => array(5) {
    ["name"] => string(0) ""
    ["type"] => string(0) ""
    ["tmp_name"] => string(0) ""
    ["error"] => int(4) // UPLOAD_ERR_NO_FILE 沒有文件被上傳
    ["size"] => int(0)
  }
}
所以對于file的has()判斷是否有必要需要改進?

然后,再換一種方法$file = Request::file('icon'); // 這里直接報錯了!錯誤:沒有文件被上傳!
if (null !== $file) {
    echo '沒上傳文件';
}
所以對于判斷文件有沒有被上傳,應該怎么做/cry
最佳答案
評論( 相關
后面還有條評論,點擊查看>>
快乐8稳赚五行 重庆时时五星彩走势图500 一分快三计划软件下载 重庆时时彩输死多少人 时时i彩人工计划软件 竞彩足球比分即时比分 澳洲8开奖网站 重庆老时时采彩开奖 助赢计划软件幸运飞艇 吉林时时有漏洞么 欢乐二人雀神腾讯 大乐透带坐标的走势图 新会员注册即送58彩金 彩名堂计划软件在哪里下载 足球竞彩 3d100% 绝杀一码的方法