2012-05-02 23 views
1

我發佈的論壇僅允許從外部URL加載.jpg,.png和.gif圖像。我想解決這個問題,並從我的服務器上的一個目錄中隨機選擇一個動態頭像,但我無法使其正常工作(可能是由於在外部網站上執行了額外的檢查或者我的代碼中存在錯誤) 。.php在外部網站上作爲.jpg的隨機圖像

到目前爲止,我已經創建了一個名爲「avatar.jpg」我的服務器,並在該文件夾中我的index.php文件的代碼上的文件夾如下: -

<?php 
$arr=array(); 
for($i=1;$i<6;$i++){ 
$arr[$i]=$i.".jpg"; 
} 
$random=rand(1,6); 
echo $arr[$random]; 
?> 

我有6張圖片avatar.jpg文件夾,命名爲1.jpg,2.jpg等

當我運行mydomain.com/avatar.jpg它正確顯示隨機圖像源,例如。 5.jpg,但是當我在論壇中輸入此URL作爲我的頭像URL時,它無法加載,Firebug報告「無法加載給定的URL」。

我是否錯過了我的代碼中的某些內容以使其按預期工作?

+0

複製/粘貼它試圖從外部論壇源服務器上訪問的URL。 – Blake

+0

檢查論壇是否複製了您的頭像並在其域中提供,以便您的服務器可能永遠不會多次使用。 – Nervetattoo

+0

URL始終從我的服務器調用,並且當它無法加載在螢火蟲中顯示的URL時如預期的那樣:http://mydomain.com/avatar.jpg :) – Will

回答

2

看來你正在用.jpg文件的文本字符串「$ name.jpg」進行響應!您必須設置正確的內容類型標題並提供實際圖像文件的位和字節。

喜歡的東西:

header("Content-type: image/jpeg"); 
echo file_get_contents($randomFilepath); 
+0

非常感謝,這完美的工作 – Will

+0

請注意,如果您要返回另一種格式(如.gif ),那麼你應該使用'image/gif'作爲內容類型,很多瀏覽器都會讓你擺脫困境,但不是所有的... – Eli

+0

事實上,你應該對頭文件做更多的工作,並保持它的動態到文件類型:您應該返回一個內容長度,並且由於這是一個旋轉圖像,因此您可以關注一下瀏覽器緩存控制標題。 – Nervetattoo