如何在CodeIgniter中显示数据库中的图像?

Sha*_*bib 7 mysql image-processing image-uploading imageview codeigniter-2

我正在使用CodeIgniter 2.1.0和MySQL数据库.我已经通过表单上传了一张图片并成功将其存储在uploads目录中,并且我还成功地将图像的完整路径存储在我的数据库中.但我通过从我的数据库调用完整路径显示图像有问题.

这是我上传的代码:

$image_path = realpath(APPPATH . '../uploads');

$config = array(
    'allowed_types' => 'jpeg|png|gif|jpg', 
    'upload_path' => $image_path, 
    'max_size' => 2097152, 
    'overwrite' => TRUE, 
    'file_name' => '_' . $i . '_'
);

$this -> load -> library('upload', $config);
Run Code Online (Sandbox Code Playgroud)

当我在图像数据库中存储图像的完整路径时,它看起来像这样

C:/wamp/www/my_project/uploads/_1_.jpg
Run Code Online (Sandbox Code Playgroud)

如果我试试

<img src="<?php echo $data['screenshot'];?>" />
//($data['screenshot'] refers to the image location retrieved from database)
Run Code Online (Sandbox Code Playgroud)

这在我的视图文件中,没有显示图像.我究竟做错了什么?请有人告诉我.什么是标准程序?

Flu*_*key 3

在你的数据库中,如果我理解正确的话,你将图像存储为C:/wamp/www/my_project/uploads/_1_.jpg

因此,当您回显图像路径img src属性时,您将拥有

它不会像您计算机上的本地路径一样工作。我的文件系统上不会有该图像。该图像需要可在网络服务器上访问。(就像你的index.php文件)

所以你需要将图像存储为:

uploads/_1_.jpg

然后做<img src="<?php echo $data['screenshot'];?>" />

或者将图像存储为:

_1_.jpg然后做

<img src="<?php echo sprintf("uploads/%s", $data['screenshot']);?>" />

编辑:要明确的是:您存储它的位置是正确的。但是,您不需要数据库中的完整路径,只需要 Web 服务器路径。