修改
我的htdocs/myprojectyii
文件夹位于C
个驱动器中,那么我可以从E
驱动器中的文件夹中获取图像吗?
我编辑我的编码
<?php $path = 'file:///E:/image/myimage.jpg'?>
<img src="<?php echo $path ?>" width="100" height="100"/>
如果我点击src
图片(firebug)上的路径,路径是正确的(导致它显示图像),但在mypage中,图片不显示
答案 0 :(得分:1)
首先,您必须尝试file:///E:/images/myimage.jpg
而不是E:/image/myimage.jpg
。其次,这不起作用:D因为That's a security feature .. it isn't possible in any browser on any platform。
答案 1 :(得分:0)
为了更好的安全性yii不允许直接但你可以使用php函数来获取图像
参见yii控制器名称UploadController.php添加功能
function actiongetBusinessProfilePic($dir='',$fileName='')
{
$name = FILE_UPLOAD.'businessprofilepic/'.$dir.'/'.$fileName;
$ext=$this->actiongetExt($fileName);
if(file_exists($name))
{
$fp = fopen($name, 'rb');
header("Content-Type: image/".$ext);
header("Content-Length: " . filesize($name));
fpassthru($fp);
}
}
现在在视图页面中做这样的事情
<img id="main_image_preview" src="<?php echo $base_path;?>upload/getBusinessProfilePic/dir/<?php echo $imageDir;?>/fileName/<?php echo $avatar;?>" alt="Upload Avatar" border="0" />
答案 2 :(得分:0)
$path = 'E:/images/myimage.jpg'
if($fp = fopen($path,"rb", 0)) //open file
{
$path = fread($fp,filesize($path)); //read file
fclose($fp);
$path = chunk_split(base64_encode($path)); //encode image to base64
$encode = '<img src="data:image/jpeg;base64,' . $path .'" width="200" height="200">';
echo $encode; //show image
}
所以我可以访问本地驱动器中的图像:)