@EVOSandru6

Как в yii скормить модели картинки, без формы?

Добрый день,

Столкнулся с проблемой при парсинге списка данных. В данных имеются ссылки на папки с картинками, которые необходимо загрузить вместе с данными.

Если использовать следующую конструкцию:

@file_put_contents($pathLocale, file_get_contents($pathRemote));


То файлы загрузятся, но дополнительно нужно будет прописать кучу логики на изменение размера миниатюры и т.д.

Я бы хотел, чтобы картинки при $model->save() загружались таким же образом, как это происходит при загрузке элемента через форму. Т.к. отрабатываются поведение для основной картинки и поведение для доп. изображений ( в частности метод поведений afterSave())..

Сами данные успешно сохраняются, но вот картинки не подкидываются. Может неправильно прописал данные в $_FILES? OS linux mint

Пробовал так:

''''
           $this->uploadImages($images, $bust);
            //  My::printArr($_FILES);
            //  My::printArr($_POST);
            if(!$model) {
                $model  =   new Objects();
            }
            $model->setAttributes($excel, true);
            if(!$model->save())
                echo 'Ошибка сохранения '. My::printArr($model->printErrors());
}

private function uploadImages($images, $path) {
        // foreach ((array)$_POST["prev_image_ids"] as $md5) {
        if(!$images){
            return;
        }
        foreach ($images as $image) {
            $md5    =   md5(microtime()); // basename($md5);
            $imagePath  =   $path . '/' . $image;
            $tmpName     =   "/tmp/{$md5}"; //"./already-uploaded/{$md5}";
            //  $img        =   'http://static2.t-ru.org/logo/logo.gif';
            $getInfo    =   getimagesize($imagePath);
            // My::printArr($getInfo);
            //  header('Content-type: ' . $getInfo['mime']);
            //  readfile($img);
            // die();
            $_FILES['Objects']["pictures"][]   =   [
                "tmp_name"  =>  $imagePath, // $tmpName,
                "size"      =>  filesize($imagePath),   // $tmpName
                "type"      =>  $getInfo['mime'],       // image/png
                "name"      =>  $image,                 // Screenshot_20161117_141028.png
                "error"     =>  UPLOAD_ERR_OK,
            ];
        }
        $_FILES['Objects']["photo"]    =   $_FILES['Objects']["pictures"][0];
    }
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
lxfr
@lxfr
Попробуйте использовать Image Upload Behavior.
Это поведение подключенное к модели, погуглите на эту тему.
Например,
www.elisdn.ru/blog/41/usage-of-behaviors-in-yii
Ответ написан
Ваш ответ на вопрос

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

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