我正在尝试在html文件中显示图像。到目前为止,我使用了一个网址: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; ?>
Controler:
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'");
}
}
答案 0 :(得分:3)
您的问题是数据库中图像的路径存储为来自您的计算机的本地路径(D:/uwamp/www/project/upload/tcf_animal17.jpg
),要正确显示它,它需要是相对于您的网络根目录的路径服务器文件。
例如,如果您的网络服务器文档根目录是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 ?>">
此代码非常粗糙,不进行错误检查 - 您需要为生产级应用程序添加该代码。