Chtml::image()

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Oscar Z
Сообщения: 6
Зарегистрирован: 2012.11.08, 08:58

Chtml::image()

Сообщение Oscar Z »

Доброго времени суток !столкнулся с такой проблемой.Загружаю в базу данные в том числе и имя картинки.Нужно выгрузить ее из базы и отобразить на экране.
Картинка расположена по адрессу C:/webservers/home/application/protected/uploads.
Пытаюсь вывести не выходит...
$path=Yii::getPathOfAlias('application.protected.uploads') . '/';
echo CHtml::image($path.$data->file);
Помогите пожалуйста или подскажите где надо копать....
ATI
Сообщения: 69
Зарегистрирован: 2009.09.27, 12:35

Re: Chtml::image()

Сообщение ATI »

Зачем ты засунул папку uploads в protected? Вынеси в корень хотя бы.
Аватара пользователя
tsurka
Сообщения: 222
Зарегистрирован: 2012.05.07, 17:10
Откуда: Приднестровье
Контактная информация:

Re: Chtml::image()

Сообщение tsurka »

это путь с корня,

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

$path=Yii::getPathOfAlias('application.protected.uploads') . '/';
 
тебе нужень путь начиная где расположено приложение, в твоем случае должно быть примерно так /protected/uploads/image.jpeg
ATI
Сообщения: 69
Зарегистрирован: 2009.09.27, 12:35

Re: Chtml::image()

Сообщение ATI »

Можно использовать следующие
http://www.yiiframework.com/doc/api/1.1 ... Url-detail
Аватара пользователя
MetalGuardian
Сообщения: 208
Зарегистрирован: 2011.03.06, 02:42
Откуда: Киев

Re: Chtml::image()

Сообщение MetalGuardian »

1. не нужно хранить файлы в папке protected - к ней закрыт доступ из вне. и достучаться до файлов без дополнительной работы не получится.
2. при создании ссылки на изображение нужно брать не path (это путь в файловой системе). а путь относительно корневого каталога домена.
то есть что то в роде этого:

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

CHtml::image(Yii::app()->request->getBaseUrl() . '/protected/uploads/image.png');
Oscar Z
Сообщения: 6
Зарегистрирован: 2012.11.08, 08:58

Re: Chtml::image()

Сообщение Oscar Z »

Хорошо я вынес в корень uploads теперь при сохранение картинки в базу пишу так не получается...
$dir=Yii::getPathOfAlias('uploads');
if(isset($_POST['News']))
{
$model->attributes=$_POST['News'];
$file=CUploadedFile::getInstance($model,'file');
$fileName=$file;
$model->file=$fileName;
$model->post_time=date("Y-m-d");
if($model->validate()){
$model->save();
$file->saveAs($dir.'/'.$file->getName());
$this->redirect(array('view','id'=>$model->news_id));
}
}
Аватара пользователя
MetalGuardian
Сообщения: 208
Зарегистрирован: 2011.03.06, 02:42
Откуда: Киев

Re: Chtml::image()

Сообщение MetalGuardian »

загружать картинку нужно в ту же папку по тому пути, что был раньше.
а сохранять в базу надо относительную ссылку.
Oscar Z
Сообщения: 6
Зарегистрирован: 2012.11.08, 08:58

Re: Chtml::image()

Сообщение Oscar Z »

заработало!всем спасибо за ответы и поддержку!
Ответить