<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                https://www.ntbk8.cn/d-121.html 簡述 這幾天準備把網站的框架從tp5換成tp6,過程中遇到很多小坑,文件上傳就是其中之一 首先tp6文件上傳相對于tp5在實現過程來說區別還是比較大,所以想偷懶沒成功。 如果原來的代碼是類似這種方法上傳,那么還是可以接著用,基本不用改。 ~~~ code$file?=?request()->file('pic');$info?=?$file->move($path,'文件名'); ~~~ 主要是在上傳驗證的時候區別較大。tp5文件對象就有驗證方法,而tp6統一采用的是驗證器驗證,所以以前類似這種寫法在tp6不適用。 ~~~ code$file->validate(['size'=>500000,'ext'=>'jpg,png,gif'])->move($path); ~~~ 下面放一段tp6官方手冊的文件上傳驗證代碼。 ~~~ codepublic?function?upload(){????//?獲取表單上傳文件????$files?=?request()->file();????try?{????????validate(['image'=>'filesize:10240|fileExt:jpg|image:200,200,jpg'])????????????->check($files);????????$savename?=?[];????????foreach($files?as?$file)?{????????????$savename[]?=?\think\facade\Filesystem::putFile(?'topic',?$file);????????}????}?catch?(\think\exception\ValidateException?$e)?{????????echo?$e->getMessage();????}} ~~~ 我復制這段內容測試過沒有作用,如果你也是復制過去,那么請求的結果會看到一直提示:image規則錯誤,最后追蹤代碼發現是filesize在驗證器里面的驗證方法名是fileSize,而且正是因為這個也導致在最終返回錯誤提示時本應該返回對應的錯誤信息但是類里面的默認規則提示數組($this->typeMsg)找不到filesize對應的值,所以直接跳到最后提示規則錯誤。 ![1611308552470384.png](https://www.ntbk8.cn/ueditor/php/upload/image/20210125/1611538072407158.png "1611538072407158.png") 所以把filesize改成fileSize就可以了。有朋友可能不習慣用try catch寫法,這里放一下我自己寫的。 ~~~ code??$file?=?request()->file('文件域字段名');??$v=\validate(['文件域字段名'=>'fileSize:500000|fileExt:jpg,png,gif'])->failException(false);??if($v->check(['文件域字段名'=>$file])){????$name=Filesystem::putFile($path,$file);????echo?$name??}else{????echo?$v->getError();??} ~~~ 助手函數input默認是沒有任何過濾設置的,所以在使用input獲取客戶端傳過來的數據時需要手動設置input的第三個參數(過濾數據的方法),可以在app\\Request對象中設置filter全局過濾屬性,app目錄下Request文件,而不是在應用配置文件設置,這點跟以前的版本有區別。 ~~~ codenamespace?app;class?Request?extends?\think\Request{????protected?$filter?=?['htmlspecialchars'];} ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看