Yii 显示上传的图片
我是php和yii的新手。我的表单中有一个文件字段用于上传图像。我使用以下代码使用文件字段上传图像 视图中的代码:Yii 显示上传的图片,yii,Yii,我是php和yii的新手。我的表单中有一个文件字段用于上传图像。我使用以下代码使用文件字段上传图像 视图中的代码: <?php echo $form->fileField($model,'logo', array('class'=>'input-file')); ?> <img src="<?php echo Yii::app()->request->baseUrl.'/protected/uploads/sitelogo
<?php echo $form->fileField($model,'logo', array('class'=>'input-file')); ?>
<img src="<?php
echo Yii::app()->request->baseUrl.'/protected/uploads/sitelogo/'.$savedvalues['varLogo'];
?>" width="50" height="50" />
<?php echo $form->hiddenField($model,'hiddenfile',
array('value'=>$savedvalues['varLogo'])); ?>
图像现在可以上传了。我已将上传的图像保存在protected\uploads\
文件夹中。我试图在编辑图像部分显示上传的图像。但是图像不显示。它显示在firebug中加载给定url失败
如何更正此问题?
受保护的
文件夹由于某种原因受到保护-任何人都无法访问它
如果要访问图片,请将其移动到public
文件夹(或public/upload
)
以下是受保护的的.htaccess
内容
deny from all
编辑:
当然,如果您想为您的用户提供一些ACL,您可以将文件放入受保护的文件夹(或使上载的
文件夹也不可访问),然后通过脚本检查访问、读取和输出文件(类)
鉴于:
<img src="<?php
echo Yii::app()->request->baseUrl.'/image.php?url=protected/uploads/sitelogo/'.$savedvalues['varLogo'];
?>" width="50" height="50" />
警告:我是一个彻头彻尾的笨蛋,所以拿着这粒盐:)
我采用了类似的方法,但是有用户特定的文件夹&添加了MIME类型检查。
我以类似的方式上载文件,然后在视图中使用以下内容查看它们:
echo '<embed src="/tim_0.5/index.php/files/Getdatafile/' . $modelid . '" width=100% height=400>';
希望它能工作….如何将图像保存在外部可访问文件夹中?使用Yii::getPathFalias('webroot')
而不是Yii::app()->getBasePath()
。这有帮助吗?如果你有什么不清楚的地方,可以问你的问题
if (Yii::app()->session['user_can_access_files']) {
header('Content-Type: image/jpeg');
readfile($_GET['url']);
} else {
Yii::app()->user->loginRequired();
}
echo '<embed src="/tim_0.5/index.php/files/Getdatafile/' . $modelid . '" width=100% height=400>';
public function actionGetdatafile($id)
{
$model=$this->loadModel($id);
$imgpath = $model->user_id . '/' . $model->filename;
$file=Yii::app()->getBasePath().'/datafiles/'.$imgpath;
if (file_exists($file))
{
$img=getimagesize($file);
header('Content-Type: '.$img['mime']);
readfile($file);
exit;
} else {
echo 'File not found!';
}
}
<b><?php echo CHtml::encode($data->getAttributeLabel('binaryfile')); ?>:</b>
<?php echo CHtml::image(Yii::app()->request->baseUrl.'/upload/'.$data->fileName); ?>
<br />
(Yii::app()->request->baseUrl.'/upload/' point to your upload folder which is in your root directory