1

編集

私のhtdocs/myprojectyiiフォルダはCドライブにありますが、ドライブのフォルダから画像を取得できますEか?これに合わせてコーディングを編集します

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

画像のパスをクリックするとsrc(firebug)、パスは正しい(画像が表示されるため)が、マイページでは画像が表示されない

4

3 に答える 3

1

まず第一に、あなたfile:///E:/images/myimage.jpgはただの代わりに試みなければなりません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

@MostafaShahverdyと@KalpeshPatelは、ご支援いただきありがとうございます。しかし、ついに、このように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 に答える