Image 从yii外部的文件夹获取图像

Image 从yii外部的文件夹获取图像,image,yii,Image,Yii,编辑 我的htdocs/myprojectyii文件夹位于C驱动器中,因此我可以从E驱动器中的文件夹获取图像吗? 我编辑我的编码到这个 <?php $path = 'file:///E:/image/myimage.jpg'?> <img src="<?php echo $path ?>" width="100" height="100"/> “width=“100”height=“100”/> 如果我在src图像(firebug)上单击路径,则路径是正

编辑

我的
htdocs/myprojectyii
文件夹位于
C
驱动器中,因此我可以从
E
驱动器中的文件夹获取图像吗? 我编辑我的编码到这个

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

“width=“100”height=“100”/>

如果我在
src
图像(firebug)上单击路径,则路径是正确的(因为它显示图像)但在mypage中,图像不显示

首先您必须尝试
file:///E:/images/myimage.jpg
而不仅仅是
E:/image/myimage.jpg
。其次,这不起作用:D因为。

首先,您必须尝试
file:///E:/images/myimage.jpg
而不仅仅是
E:/image/myimage.jpg
。其次,这不起作用:dbe原因。

为了更好的安全性,我不允许直接访问,但可以使用php函数获取图像

请参见yii控制器名称UploadController.php中的add函数

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" />
$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
    }
upload/getBusinessProfilePic/dir//fileName/“alt=“upload Avatar”border=“0”/

为了更好的安全性,我不允许直接访问,但可以使用php函数获取图像

请参见yii控制器名称UploadController.php中的add函数

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" />
$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
    }
upload/getBusinessProfilePic/dir//fileName/“alt=“upload Avatar”border=“0”/

@Mostafa Shahverdy和@Kalpesh Patel非常感谢您的支持。。
但最后我得到了使用base64_编码的解决方案,如下所示

<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" />
$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
    }
$path='E:/images/myimage.jpg'
如果($fp=fopen($path,“rb”,0))//打开文件
{ 
$path=fread($fp,filesize($path));//读取文件
fclose($fp);
$path=chunk\u split(base64\u encode($path));//将图像编码到base64
$encode='';
echo$encode;//显示图像
}

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

@Mostafa Shahverdy和@Kalpesh Patel非常感谢您的支持。。 但最后我得到了使用base64_编码的解决方案,如下所示

<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" />
$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
    }
$path='E:/images/myimage.jpg'
如果($fp=fopen($path,“rb”,0))//打开文件
{ 
$path=fread($fp,filesize($path));//读取文件
fclose($fp);
$path=chunk\u split(base64\u encode($path));//将图像编码到base64
$encode='';
echo$encode;//显示图像
}

因此,我可以访问本地驱动器中的映像:)

嗯,我会尝试。是的,因为所有文件映像都必须在本地驱动器中。您的答案是正确的,但即使路径正确,它也不会显示映像。请参阅this@YessieSetiawan,首先在单独的选项卡/窗口中打开图像,以确保键入的路径正确。即使您可以转到
文件
O用浏览器笔
查找path@RohitSubedi:什么样的扩展名?firefox上的插件?嗯,我会试试。是的,因为所有文件映像必须在本地驱动器中。您的答案是正确的,但它不显示映像,即使路径正确也请参考this@YessieSetiawan,首先在单独的选项卡/窗口中打开图像,以确保键入的是正确的ct路径。即使您可以使用浏览器转到
文件
打开
,找到path@RohitSubedi:什么类型的扩展?firefox上的插件?如果您编辑问题使其反转所有内容,请编写
edit
如果您编辑问题使其反转所有内容,请编写
edit