2012-05-02 24 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