如何在i2.0中通过POST API上传文件到服务器


How to upload a file to server via POST API in Yii2.0?

我从这个链接制作了一个yii2模型http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html我使用post请求向API发布文件,并在我的控制器中获得所有文件信息,但无法使用使用上述链接创建的这个Yii2.0模型上传文件,正常的PHP文件上传代码工作正常。这是我的控制器代码

public function actionUploadFile()
    {
        $upload = new UploadForm();
        var_dump($_FILES);
        $upload->imageFile = $_FILES['image']['tmp_name'];
        //$upload->imageFile = $_FILES;
        var_dump($upload->upload());
    }

模型代码是

class UploadForm extends Model
    {
    /**
     * @var UploadedFile
     */
    public $imageFile;
    public function rules()
    {
        return [
            [['imageFile'], 'safe'],
            [['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg'],
        ];
    }
    public function upload()
    {
        try {
            if ($this->validate()) {
                $this->imageFile->saveAs('/var/www/html/' . $this->imageFile->baseName . '.' . $this->imageFile->extension);
                var_dump("Jeree");
                return true;
            } else {
                var_dump($this->getErrors());
                return false;
            }
        }catch (ErrorException $e) {
            var_dump($e->getMessage());
        }
    }
    }

试试这个

public function actionUpload()
{
   $model = new UploadForm();
   if (Yii::$app->request->isPost) {
       $model->file = UploadedFile::getInstance($model, 'file');
       if ($model->validate()) {                
          $model->file->saveAs('/var/www/html/' . $model->file->baseName . '.' . $model->file->extension);
       }
    }
    return $this->render('upload', ['model' => $model]);
}