Задать вопрос
@Ace_Viral

Загрузка файлов в REST API на yii2?

Доброго времени суток!
Я совсем новичок в yii2 и хочу реализовать REST API для менеджера записок, мне необходимо сделать прикрепления к записки какого нибудь файла.
Также надо будет сохранять файл в корне проекта, а в бд хочу сохранять только путь к файлу.
Подскажите пожалуйста как это можно сделать.
Т.е запрос должен выглядеть примерно так:
63034bf5cd941025271488.png
Вот что я набросал, но это не работает(((
public function actionUpload()
    {
        $model = new UploadForm();
        
        if (Yii::$app->request->isPost) 
        {
            $model->file = UploadedFile::getInstanceByName('file');
            $fileName = $model->upload();
             if ( $fileName ) {
                // File upload succeeded
                // return Util::success(  $fileName );  
                return [
                    'status' => Status::STATUS_OK,
                    'message' => 'OK',
                    'data' => ['hasErrors' => $model->hasErrors(),
                    'getErrors' => $model->getErrors(),]
                ];
             }else{
                // Return Util::error( 'File cannot be saved');
                $model->getErrors();
                return [
                    'status' => Status::STATUS_BAD_REQUEST,
                    'message' => 'File cannot be saved',
                    'data' => ['hasErrors' => $model->hasErrors(),
                    'getErrors' => $model->getErrors(),]
                ];
             }
        }else{
            return [
                'status' => Status::STATUS_UNAUTHORIZED,
                'message' => 'File cannot be saved',
                'data' => []
            ];
        }
    }

UploadForm в моделях:
public function actionUpload()
    {
        $model = new UploadForm();
        
        if (Yii::$app->request->isPost) 
        {
            $model->file = UploadedFile::getInstanceByName('file');
            $fileName = $model->upload();
             if ( $fileName ) {
                // File upload succeeded
                // return Util::success(  $fileName );  
                return [
                    'status' => Status::STATUS_OK,
                    'message' => 'OK',
                    'data' => ['hasErrors' => $model->hasErrors(),
                    'getErrors' => $model->getErrors(),]
                ];
             }else{
                // Return Util::error( 'File cannot be saved');
                $model->getErrors();
                return [
                    'status' => Status::STATUS_BAD_REQUEST,
                    'message' => 'File cannot be saved',
                    'data' => ['hasErrors' => $model->hasErrors(),
                    'getErrors' => $model->getErrors(),]
                ];
             }
        }else{
            return [
                'status' => Status::STATUS_UNAUTHORIZED,
                'message' => 'File cannot be saved',
                'data' => []
            ];
        }
    }
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@galliard
Для начала определись, ты делаешь REST API или передачу файла через multipart?
В REST файлы передаются через base46.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы