簡體   English   中英

顯示來自php的圖像

[英]Display image from php

我正在嘗試在html文件中顯示圖像。 到目前為止,我使用了一個URL: http : //placehold.it/400x300 ,它工作正常,現在當我嘗試用數據庫中的圖像替換它時,它什么也不會顯示。 圖像路徑為:D:/uwamp/www/project/upload/tcf_animal17.jpg我嘗試使用其他路徑,但是它不起作用。 我不確定問題出在哪里。 我打印了數據,這是個好方法

html

 <?php foreach ($data[0] as $film):?>
            <div class = <?= $film['id_film'] ?> >
              <div class=  "col-lg-3 col-md-4 col-xs-6 thumb filmDiv" >

                    <a class="thumbnail " id = "filmShow" href= <?= "/project/admin/showFilm/" . $film['id_film']?>>
                        <p> <?= $film['title_film'] ?> </p>
                        <img class="img-responsive overlay" src= <?= $film['img'] ?>  alt="">  

                    </a>
                    <a class="" href =<?=  "/project/admin/update/" . $film['id_film'] ?> >
                        <button name="upd" id="upd" type="button" class="btn btn-default">Update</button>
                    </a>

                    <a class="delete"name= <?= $film['id_film'] ?> >
                        <button id="delete"  type="button"  class="btn btn-default">Delete</button>
                    </a>
                </div>
            </div>
        <?php endforeach; ?>

控制器:

public function GetLastFilms()
{
    $films = $this->film->getFilms();
    $lastFilms = $this->film ->getLastFilm();

    $dict[0] = $films;
    $dict[1] = $lastFilms;

    return $dict;
}

public function index() 
{   
    if(isset($_SESSION['login']))
    {
        $this->generateView($this->GetLastFilms());
    }else
    {
       header('Location: /project/admin/login');
    }
}

protected function generateView($data = array())
{
    $classeControler = get_class($this);
    $controler = str_replace("Controler", "", $classeControler);
    $view = new View($this->action, $controler);
    $view->generate($data);        
}

查看:

public function generate($data) 
{
    $contenu = $this->generateFile($this->viewFile, $data);
    $racineWeb = Configuration::get("racineWeb", "/");
    $view = $this->generateFile('View/Template/index.php',
            array('title' => $this->viewTitle, 'contenu' => $contenu,
                'racineWeb' => $racineWeb));
    echo $view;
}

private function generateFile($viewFile, $data) 
{
    if (file_exists($viewFile)) 
    {
        extract($data);
        ob_start();
        require $viewFile;
        return ob_get_clean();
    }
    else 
    {
        throw new Exception("can't find '$viewFile'");
    }
}

您的問題是數據庫中圖像的路徑存儲為來自計算機的本地路徑( D:/uwamp/www/project/upload/tcf_animal17.jpg ),要正確顯示該路徑,它必須是相對路徑到您的Web服務器文檔的根目錄。

例如,如果您的Web服務器文檔根目錄為D:/uwamp/www ,那么您需要存儲的圖像路徑應為project/upload/tcf_animal17.jpg

當然,如果您不能將圖像存儲在Web根目錄中,則始終可以選擇直接轉儲內容,但是出於性能原因,這並不是一個好主意:

<?php
    $mime = image_type_to_mime_type(exif_imagetype(string $image_path));
    $data = "data:$mime;base64," . base64_encode(file_get_contents($image_path)); ?>
?>
<img src="<?= $data ?>">

該代碼非常粗糙,並且不進行錯誤檢查-您需要為生產級應用程序添加代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM