【问题标题】:Display image from php从 php 显示图像
【发布时间】:2016-01-13 04:08:09
【问题描述】:

我正在尝试在 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'");
    }
}

【问题讨论】:

标签: php html image


【解决方案1】:

您的问题是数据库中图像的路径存储为您机器的本地路径 (D:/uwamp/www/project/upload/tcf_animal17.jpg),要正确显示它需要是相对于您的 Web 服务器文档根目录的路径.

例如,如果您的网络服务器文档根是D:/uwamp/www,那么您需要存储的图像的路径应该是project/upload/tcf_animal17.jpg

当然,如果您无法将图像存储在网络根目录中,那么您始终可以选择直接转储内容,但出于性能原因,这确实不是一个好主意:

<?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 ?>">

此代码非常粗略,没有错误检查 - 您需要为生产级应用程序添加它。

【讨论】:

    猜你喜欢
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2016-02-06
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多