PHP在浏览器直接输出图片

lw_blog 发布于 2013/05/22 22:08
阅读 12K+
收藏 1

因为个人有很多的图片文件,难于管理同时又对又拍云好奇,所以把图片牵了过去,问题也就产生了,自己的网站和外链的图片都用的是单php文件进行管理的,也就是 http://domain/pic.php?pid=(string),string是数据库记录的图片path标识,访问此页面首先会查redis,如果没有记录那么直接查数据,最好找到图片的真实地址,然后使用curl读取图片最后再用header直接输出。

现在图片迁移到了外边,如果继续使用curl方式的话,这种迁移不就是多了个存储空间吗?又拍云的CDN功能就用不上了,而且每次curl读取图片都会损失服务器资源和服务器带宽,尤其是带宽问题,如果用这种方式最后图片的产生的流量就又回到自己的服务器上面了。想问下大家有没有针对此方案的解决方法。

要求如下:

1、使用又拍云存储图片。

2、使用http://domain/pic.php?pid=(string)这种方式访问图片,也就是说可以这样使用图片。

<img src="http://domain/pic.php?pid=(string)" />

可能大家有人会说这样不是多次一举吗?但pic.php里面有个统计功能所以要做成单入口的。

在此谢谢大家!

加载中
0
工程师爸爸
工程师爸爸

pic.php 内在原输出图片的位置( 只能在这之前统计你要的数据 ) 进行301重定向到又拍图片地址。(用户访问是转到又拍)

<img src="http://domain/pic.php?pid=(string)" />

这样可以加载

测试:

lw_blog
lw_blog
我试了,这个方法还不错,可以实现直接调用又拍云的图片和CDN功能,如果能隐藏301转向就好了,这样就看不到真实地址了!
0
lw_blog
lw_blog
@红薯  ,不知能否帮忙解答,谢谢!
0
清朦
清朦
header location 301跳转到又拍不行吗?
lw_blog
lw_blog
3q
leo108
leo108
+1
0
傅小黑
傅小黑
header('Content-Type:image/png");

imagepng($imgSource);

//------------

// other code

傅小黑
傅小黑
楼上的是对的,先统计代码,然后header跳转
lw_blog
lw_blog
这个应该还是用自己的服务器处理图片吧
0
lw_blog
lw_blog

引用来自“民工MG”的答案

pic.php 内在原输出图片的位置( 只能在这之前统计你要的数据 ) 进行301重定向到又拍图片地址。(用户访问是转到又拍)

<img src="http://domain/pic.php?pid=(string)" />

这样可以加载

测试:

最终使用了此方案,感谢!
返回顶部
顶部