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)了三周,不过我又回来更新了,经过前面四篇想必小伙伴已经了解日志的使用以及最佳实践了,这个系列的文章也差不多要结束了,今天我们来总结一下. 概览 这篇 ...
随机推荐
- cordova安装--创建ionic项目
1.简介ionic ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework ). 可以帮助您使用 Web 技术,比如 HTML.CS ...
- 10个JavaScript小技巧
1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做 ...
- BCS--使用SharePoint Designer创建外部内容类型
使用SharePoint Designer创建外部列表(也可以在浏览器中创建列表) http://www.cnblogs.com/haogj/archive/2011/05/01/2033845.ht ...
- HTML5 Web Storage使用实例
很久没写文章了,忙加懒实在没办法,之前也看过关于Web Storage的文章,当时就觉得各各浏览器的支持跟上来还早着呢,像我们这样做门户网站的一时半会儿也用不上,毕竟用户群体鱼目混杂嘛,最近各各浏览器 ...
- android studio 安装与环境搭建
转摘自:http://blog.csdn.net/zhanghefu/article/details/9286123 第一章 andriod studio 安装与环境搭建 一.Android St ...
- JDBC_获取数据库连接
<span style="font-size:24px;">package src.com.jdbc.java; import java.io.IOException; ...
- Java多线程实现......(1,继承Thread类)
MyThread.java 中的代码: public class MyThread extends Thread{ private int startPrint,printCount; private ...
- app添加辅助功能时,需要注意的测试点
最近项目里需要在辅助功能添加对应的服务,来支持对应的功能实现: 1.对用户添加app进行信息管理功能中,该app有对应的通知或信息时在app的logo上显示提示标志. 2.用户下载一款app后能够自动 ...
- gcc编译4个阶段
gcc的编译流程分为四个步骤,分别为:· 预处理(Pre-Processing) -E· 编译(Compiling) -S· 汇编(Assembling) -c· 链接 ...
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
工作.工作.找工作.经过1个多星期的思想斗争还是决定了找JAVA方面的工作,因为好像能比PHP的工资高点.呵呵 :-) (其实我这是笑脸,什么QQ输入法,模拟表情都没有,忒不人性化了.) 言归正传, ...