使用存储在数据库中的'路径/文件名'显示存储在服务器中的图像

问题描述:

我只是想问,如果有人可以向我解释为什么我不能将我的图像显示到我创建的网站。我将'路径/文件名'存储在数据库的其中一列中。图像图像存储在服务器中。使用存储在数据库中的'路径/文件名'显示存储在服务器中的图像

<?php foreach $data as $val{?> 
    <img src="<?php echo base_url();?><?php echo $val->file;?>"> 
<?php }?> 

控制器

$path = $_FILES["addFile"]["name"]; 
$extension = pathinfo($path, PATHINFO_EXTENSION); 

$file_sc = 'uploads/screenshots/'.date("Ymdhms.").$extension; 

$new_name = date("Ymdhms").".".$extension; 
$target_dir = "./uploads/screenshots/"; 
$target_file = $target_dir.$new_name; 

$type = $_FILES["addFile"]["type"]; 
$allowed = array('image/jpeg', 'image/png', 'image/gif'); 

if($_FILES["addFile"]["name"]){ 
    if(!in_array($type,$allowed)){ 
     echo 'File type is not allowed.'; 
    } else { 
     move_uploaded_file($_FILES["addFile"]["tmp_name"],$target_file); 
     $this->MyModel->add($file_sc); 
    } 

型号

function add_kudos($file_sc) 
{ 
    $query = $this->db->query("insert into tbl_kudos(file) values('$file_sc'); 
} 

这是怎么看起来像在数据库 - > '上传/截图/ 20170224040231.jpg'

文件名在服务器 - > 20170224040231.jpg

图像未显示。即使我的网址是正确的。 有人可以向我解释为什么它是这样的?我是新来的。

+0

没有足够的代码来支持这个 –

+0

等待我编辑它 – azis

第一个文件名与第二个文件名不同!

您可以使用urlencode()然后打印图像URL

+0

它呼应图像的相同路径。为什么不能在网上查看它?但是如果我使用url转到目录,我可以查看图像。它在代码中回响的路径与url相同。 – azis

+1

根目录中有任何.htaccess文件? – MahdiY

创建一个PHP文件中像这样命名showimg.php:

<?php 
    $img = $_REQUEST['img']; 
    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
    $mime=finfo_file($finfo, $img) ; 
    finfo_close($finfo); 
    header("Content-type: $mime"); 
    $fp = fopen($img, 'rb'); 
    fpassthru($fp); 
?> 

使用您的代码来获得你要显示的图像的路径从一个变种名为$ myimgpath数据库,然后用这样的:

<img src="<?php echo base_url()."showimg.php?img=".$myimgpath;?>"> 
+0

已经解决了。谢谢 – azis

试试这个

<?php foreach ($data as $val) { ?> 
    <img src="<?php echo base_url($val->file); ?>"> 
<?php } ?> 
+2

你应该使用双引号。 – MahdiY

+0

双重纠正将不起作用,因为它在src属性中使用。 –

+2

''val-> file''是一个字符串,不可变 – MahdiY