img src某个php文件输出图片(回复更改图片readfile读取图片等)
在论坛我们经常看到一回复图片就更改等,这功能是怎么实现的呢,其实更验证码道理相同。
新建文件 randimage.php 加入以下代码:
<?php
$dir='../../images/'; $iforder=1;//顺序显示还是随机;1为顺序,0为随机
$ifcircle=1; //顺序显示的时候是否循环播放,1为循环播放,0为不循环 session_start();
$handle=opendir($dir);
while($fileName=readdir($handle))
{
if($fileName!='.'&&$fileName!='..')
{
$fileList[]=$fileName;
}
}
closedir($handle);
if($iforder==1)
{
if(isset($_SESSION['order']))
{
if($_SESSION['order']<count($fileList)-1)
{
$_SESSION['order']++;
}
else
{
if($ifcircle==1)
{
$_SESSION['order']=0;
}
}
}
else
{
$_SESSION['order']=0;
} $i=$_SESSION['order'];
}
else
{
$num=count($fileList)-1;
$i=rand(0,$num);
} $file=$dir.$fileList[$i]; $info=getimagesize($file); header("Content-type:{$info['mime']}");
// print_r($info);
readfile($file);
这个php就输出了一个图片文件。
我们在其他网页调用就可以了。
<img src="randomImage.php" border=0 />
src为生成图片的php文件。
附一篇帖子:
用readfile函数读取图片时碰到的问题
我打算在一个页面显示图片,不是直接给出img的scr,而是由一个readfile函数输入,相当于由服务器读取图片再输出.
前台的页面如下:
<img src="http://mywebsite.com/getobj1.php?path=www.abc.com/images/11.jpg"" border="0">
<img src="http://mywebsite.com/getobj1.php?path=www.abc.com/images/12.jpg"" border="0">
...
<img src="http://mywebsite.com/getobj1.php?path=www.abc.com/images/11.jpg"" border="0">
后台的getobj1.php代码如下
<?php
header('Content-Type: image/jpeg');
readfile($_GET["path"]);
?>
现在问题是这样的:
图片都能显示正常,而且也的确是由服务器读取来的.(因为有些图片直接访问不到..GFW)
但是这些图片显示的时候是一个一个显示出来的.而不是像正常访问的时候那样是一起显示出来的.
这个有什么办法没,是图片所在服务器的问题还是PHP的机制问题?
请大家帮帮忙
------解决方案--------------------------------------------------------
应该是代码的问题 楼主可以从缓存这个角度去考虑 可以一次性读取 缓存起来 再输出
ob_start
···//处理读出图片显示等操作
ob_flush();
flush();
------解决方案--------------------------------------------------------
这是正常的
因为,图片不在你的服务器上,只是从远程读过来,再传给客户端
你服务器,只是一个中转
既然多了一层中转,当然慢了,
有一个解决的办法
就是,
你可以建立一个缓存的目录
当你碰到一个请求时,查看服务器缓存中是否有,
如果没有,这个请求是第一次,就把远程的图片,存在服务器上
如果有,直接把本服务器的传给客户端
这样,每张图片,就只要中转一次了。
img src某个php文件输出图片(回复更改图片readfile读取图片等)的更多相关文章
- PPT文件流转为图片,并压缩成ZIP文件输出到指定目录
实现流程: 接收InputStream流->复制流->InputStream流转为PPT->PPT转为图片->所有图片压缩到一个压缩文件下 注意: 1.PPT文件分为2003和 ...
- Servlet从本地文件中读取图片,并显示在页面中
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...
- HTML中上传与读取图片或文件(input file)----在路上(25)
input file相关知识简例 在此介绍的input file相关知识为: 上传照片及文件,其中包括单次上传.批量上传.删除照片.增加照片.读取图片.对上传的图片或文件的判断,比如限制图片的张数.限 ...
- 文件正在上传的转圈圈gif图片引出的fixed定位和absolute定位
文件正在上传的转圈圈gif图片 一.文件上传时,未上传返回成功状态之前给个gif动态图片显示在页面,改善用户体验. <!--S 遮罩层 --> <div id="mas ...
- IDEA指定.class文件输出位置
1.File > Project Structure > Project > Project compiler output 项目中的默认编译输出总目录 2.我习惯于把.class ...
- 上传图片用图片文件的对象hash哈希值判断图片是否一样,避免重复提交相同的图片到服务器中
上传图片用图片文件的对象hash哈希值判断图片是否一样,避免重复提交相同的图片到服务器中 前端:要用到一个插件,点击下载 <!DOCTYPE html> <html xmlns=&q ...
- Java微信公众平台开发(七)--多媒体消息回复之图片回复
之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复[普通消息类型消息],这里将讲述多媒体消息的回复方法,[多媒体消息]包含回复图片消息/回复语音消息/回复视频消息/回复音乐消 ...
- jfinal 后台文件上传(结合上一篇(h5 图片回显))
前端用了jquery.form.js插件异步提交表单 $("#imgForm").ajaxSubmit();//户主头像 /** * * @description 上传户主头像 * ...
- SLF4j 居然不是编译时绑定?日志又该如何正确的分文件输出?——原理与总结篇
各位新年快乐,过了个新年,休(hua)息(shui)了三周,不过我又回来更新了,经过前面四篇想必小伙伴已经了解日志的使用以及最佳实践了,这个系列的文章也差不多要结束了,今天我们来总结一下. 概览 这篇 ...
随机推荐
- jvm的内存区域简介
1.内存区域划分 jvm在执行java程序过程中会将管理的内存划分成若干不同的数据区域,他们分别是程序计数器,堆,方法区,虚拟机栈,本地方法栈. 1.1指令计数器 指令计数器是线程私有的,每个线程都有 ...
- [Swust OJ 767]--将军回家(Dijkstra算法)
题目链接:http://acm.swust.edu.cn/problem/767/ Time limit(ms): 1000 Memory limit(kb): 65535 Description ...
- BZOJ 3304: [Shoi2005]带限制的最长公共子序列( LCS )
求个LCS, 只是有了限制, 多加一维表示匹配到z串的第几个, 然后用滚动数组 ------------------------------------------------------------ ...
- uva 11077 置换
/** 给定一个置换,看能不能存在一个置换A^2 = B 思路; 循环节长度为偶数n的置换只能由循环节长度为长度2*n 的置换A*A 而变得.所以只需求出循环节,看循环节长度为偶数的个数是否为偶数个即 ...
- 通过代码...CGRectmake 创建的控件如何自适应屏幕。
[[UIScreen mainScreen] bounds].size.width [[UIScreen mainScreen] bounds].size.height 得到屏幕的宽高,然后将变量写入 ...
- (IOS)Apple 证书相关
1.私钥 本地钥匙串程序创建<证书请求文件>(.certSigningRequest),用其向苹果申请下载<证书文件>/<私钥>(.cer),并安装到钥匙串: 团队 ...
- javascript 关闭页面提示
window.onbeforeunload = function (e) { e = e || window.event; // For IE and Firefox prior to version ...
- Controller.RedirectToAction 方法
此成员被重载.有关此成员的完整信息,包括语法.用法和示例,请单击重载列表中的名称.
- 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...
- spring Annotation 笔记2.1
使用注解替代xml 在前几章的笔记基础上添加使用注解的形式 1.配置applicationContext 添加context schema <?xml version="1.0&quo ...