Добрый день,
Столкнулся с проблемой при парсинге списка данных. В данных имеются ссылки на папки с картинками, которые необходимо загрузить вместе с данными.
Если использовать следующую конструкцию:
@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];
}