1

编辑

我的htdocs/myprojectyii文件夹在C驱动器中,那么我可以从驱动器中的文件夹中获取图像E吗?我将我的编码编辑为此

<?php $path = 'file:///E:/image/myimage.jpg'?>
<img src="<?php echo $path ?>" width="100" height="100"/>

如果我单击src图像上的路径(萤火虫),路径是正确的(因为它显示图像)但在我的页面中,图像不显示

4

3 回答 3

1

首先你必须尝试file:///E:/images/myimage.jpg而不是 only E:/image/myimage.jpg。其次,这不起作用:D,因为这是一项安全功能..在任何平台上的任何浏览器中都不可能

于 2013-03-21T04:06:59.590 回答
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" />
于 2013-03-22T07:09:56.337 回答
0

@Mostafa Shahverdy 和 @Kalpesh Patel 非常感谢您的支持.. 但最后我得到了使用 base64_encode 的解决方案,就像这样

$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
    }

所以我可以访问本地驱动器中的图像:)

于 2013-03-22T07:29:24.890 回答