загрузка файлов в rest api

Всё что касается построения API
Ответить
mikola
Сообщения: 22
Зарегистрирован: 2015.01.09, 14:00

загрузка файлов в rest api

Сообщение mikola »

Добрый день!

У меня возникла проблема с валидацией во время загрузки картинки, выход нашёл, но он меня смущает.

Есть модель Images

Код: Выделить всё

class Images extends ActiveRecord
{

    public $image;

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'images';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['title'], 'required'],
            ['title', 'string', 'min' => 2, 'max' => 128],
            ['image', 'image', 'extensions' => 'jpg, jpeg, gif, png', 'skipOnEmpty' => $this->isNewRecord?false:true],
        ];
    }

}
 
При работе через сгенерённый CRUD всё нормально.

А при работе через curl есть нюанс:

Так валидация картинки работает неправильно (всё время считает, что картинка не загруженна)

Код: Выделить всё

curl -F title=mytitle -F image=@/var/www/flower.jpg http://mysite.dev/api/image
 
А так всё вопрядке:

Код: Выделить всё

curl -F title=mytitle -F Images[image]=@/var/www/flower.jpg http://mysite.dev/api/image
 
С параметром title всё в порядке(валидируеться и сохраняеться), а вот с image такая история.
Что я делаю не так, как правильно валидировать загрузку файла при помощи rest api



Спасибо!
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: загрузка файлов в rest api

Сообщение yiijeka »

Используйте UploadedFile::getInstanceByName вместо UploadedFile::getInstance
mikola
Сообщения: 22
Зарегистрирован: 2015.01.09, 14:00

Re: загрузка файлов в rest api

Сообщение mikola »

Помогло, спасибо за помощь.
Ответить