//上傳附件 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]); }