Example #1
0
 /**
  * 多文件上传
  * @param $name 表单中file的名称
  * @param $baseDir 文件的上传路径
  */
 public static function uploadFiles($name, $baseDir = '')
 {
     if ($baseDir == '') {
         $baseDir = Yii::$app->basePath . '/web/upload/attachment';
     }
     $model = new UploadsForm();
     $model->file = UploadedFile::getInstancesByName($name);
     if (empty($model->file)) {
         return true;
     }
     //没有上传文件
     if ($model->validate()) {
         $resFileArr = [];
         foreach ($model->file as $f) {
             $ext = $f->getExtension();
             $fileName = md5($f->tempName) . '.' . $ext;
             $dir = date('Ymd');
             $fileDir = $baseDir . '/' . $dir;
             //var_dump($fileDir);
             //exit;
             if (!is_dir($fileDir)) {
                 $res = mkdir($fileDir, 0777, true);
                 if (!$res) {
                     return ['errno' => 10, 'errmsg' => 'create dir failed'];
                 }
             }
             $fileUrl = $fileDir . '/' . $fileName;
             $res = $f->saveAs($fileUrl);
             if (!$res) {
                 return ['errno' => $model->file->error, 'errmsg' => 'save file failed'];
             }
             $resFileArr[] = ['fileUrl' => $dir . '/' . $fileName, 'name' => $f->name];
         }
     } else {
         return ['errno' => 11, 'errmsg' => json_encode($model->getErrors())];
     }
     //返回文件上传信息
     return ['errno' => 0, 'errmsg' => 'success', 'fileInfo' => $resFileArr];
 }