【发布时间】:2014-01-29 03:30:59
【问题描述】:
我想在 HTML 页面中输出我存储在 MYSQL 中的带有file_get_contents("http://www.example.com/img.jpg") 的图像。我有以下代码,但我不知道如何使它工作。现在,它显示乱码,或者如果我使用标题,则显示损坏的图像。我正在使用 codeigniter:
型号:
public function img_get() {
$query = $this->db->query('SELECT * FROM imgtable');
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
}
return $data;
}
控制器:
class Site extends CI_Controller {
public function index() {
$this->load->model('img_model');
$data['row'] = $this->img_model->img_get();
$this->load->view('home_view', $data);
}
查看:
<html>
<head>
<title>Homepage</title>
</head>
<body>
<h3>Insert the image url</h3>
<br>
<?php
foreach ($row as $r) {
echo $r->img . "<br />";
}
?>
</body>
</html>
【问题讨论】:
-
如何为该图像生成一个临时 URL,并将其放入 HTML 中?
-
你需要使用 img。看看这个重复的问题:stackoverflow.com/questions/5525830/…
-
无法直接提供图像是在数据库中存储图像可能是一个非常糟糕的主意的另一个原因。
-
@tadman 有什么更好的方法?
-
推荐的做法是将图像文件保存在文件系统的某个位置,并将对此的引用存储在数据库中,这样您的服务器就可以简单地发送文件来服务请求,无需访问数据库并且您的数据库备份不会被千兆字节的二进制数据弄得一团糟。更好的是使用像 Amazon S3 这样的对象存储,您根本不需要提供文件,只需提供远程资源的 URL。
标签: php html mysql codeigniter