[moka同窗筆記]PHP上傳文件

 

 

  //上傳附件
    public function actionUploadFile(){
        $outputMsg = null;
        $insertAtt = [];

        if(!isset($_FILES['file'])){
            return $this->outPut([11,'未接收到正確的文件']);
        }
        //保存文件
        foreach ($_FILES['file']['tmp_name'] as $key =>$v){
            if(is_uploaded_file($_FILES['file']['tmp_name'][$key])){ //is_uploaded_file() 函數判斷指定的文件是不是經過 HTTP POST 上傳的。
                $fileTmpName = $_FILES['file']['tmp_name'][$key];
                $fileName = $_FILES['file']['name'][$key];
                $extensionName = strrchr($fileName,'.'); //strrchr() 函數查找字符串在另外一個字符串中最後一次出現的位置,並返回從該位置到字符串結尾的全部字符。
                //驗證文件合法
                if(!in_array($extensionName,\Yii::$app->params['uploadFileExtend'])){
                    return $this->outPut([11,$extensionName.'格式文件不容許上傳!']);
                }
                $saveFileName = "date_".time()."_r_".rand(0,9999)."{$extensionName}";
                //$saveFilePath = "upload_file/".date('Y',time())."_".date('m',time())."_".date('d',time());
                $saveFilePath = "upload_file/".date('Y_m_d',time());
                if(!file_exists($saveFilePath) && !mkdir($saveFilePath)){
                    return $this->outPut([11,'目錄建立失敗']);
                }
                $saveFilePath = $saveFilePath."/".$saveFileName;
                if(move_uploaded_file($fileTmpName,$saveFilePath)){
                    $insertAtt[] = [
                        'file_name'=>$fileName,
                        'file_path'=>$saveFilePath
                    ];
                }

            }
        }

        return $this->outPut([0],[$insertAtt]);
    }
相關文章
相關標籤/搜索