2017-06-22 152 views
-2

我有一個應用程序,用戶可以在其中上傳要用作其頭像的圖像。方式設置如下。有一個名爲的文件夾「上傳」,當用戶選擇一個圖像時,它將被上傳並存儲在那裏,並重命名爲用戶的用戶名,然後數據庫中的引用會引用該圖像,因此數據庫中的字符串看起來像這php編碼和解碼字符串

「../uploads/username.jpg」 我使用PHP的rawurlencode();函數來處理帶空格的用戶名,例如「用戶管理」這個用戶上傳的圖片它將所以當像這樣存儲在數據庫中../uploads/user%20admin.jpg現在,當我想要顯示那個圖像我使用rawurldecode();函數,但它ju st不能正常工作,因爲它是以這種方式解碼的「uploads/user」admin.jpg 這是我的PHP來顯示圖像。

<?php 
echo '<td class="col-md-3"> 
<input type="checkbox" name="check_list[]" value="' .$row2['buss_id'].'">' 
. '<img src=' . rawurldecode($row2['pic']) .'> '. $row2['username']; ?> </td> 

更清楚,這是怎樣的字符串在瀏覽器

<img src="../uploads/user" admin.jpg> 

由於被解碼。

回答

0

你缺少名言。你的這部分代碼:

'<img src=' . rawurldecode($row2['pic']) .'> ' 

應該是這樣的:

'<img src="' . rawurldecode($row2['pic']) .'"> ' 

與您當前密碼的問題是,它會發出這樣的:

<img src=../uploads/user admin> 

瀏覽器將空間視爲屬性之間的分隔符,因此它可以這樣解釋:

<img src="../uploads/user" admin> 
+0

「瀏覽器將空間視爲屬性之間的分隔符」我現在看到了。謝謝你的工作。但現在圖像沒有顯示,因爲它的名稱中包含%20部分......猜猜我需要找到一種處理空間不同的方法。 –