2017-02-24 83 views
0

我只是想問,如果有人可以向我解釋爲什麼我不能將我的圖像顯示到我創建的網站。我將'路徑/文件名'存儲在數據庫的其中一列中。圖像圖像存儲在服務器中。使用存儲在數據庫中的'路徑/文件名'顯示存儲在服務器中的圖像

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

回答

0

第一個文件名與第二個文件名不同!

您可以使用urlencode()然後打印圖像URL

+0

它呼應圖像的相同路徑。爲什麼不能在網上查看它?但是如果我使用url轉到目錄,我可以查看圖像。它在代碼中迴響的路徑與url相同。 – azis

+1

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

0

創建一個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

0

試試這個

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

你應該使用雙引號。 – MahdiY

+0

雙重糾正將不起作用,因爲它在src屬性中使用。 –

+2

''val-> file''是一個字符串,不可變 – MahdiY

相關問題