繁体中文
设为首页
加入收藏
当前位置:程序开发首页 >> CGI >> 利用Perl开发Internet/Intranet应用之二(3)

利用Perl开发Internet/Intranet应用之二(3)

2006-12-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:----3 图形文件的处理 ----虽然client经常向服务器申请的都是text/HTML文件,但是服务器也可以回送GIF、JPG等图形文件,我们只需在数据的header中指明即可。假如我们用语句调用CGI程式,向服务器申请一个GIF文件,...

----3 图形文件的处理

----虽然client经常向服务器申请的都是text/HTML文件,但是服务器也可以回送GIF、JPG等图形文件,我们只需在数据的header中指明即可。假如我们用语句调用CGI程式,向服务器申请一个GIF文件,则服务器收到请求后会以二进制码的形式回送一个GIF的图形文件给client。te.pl源程序如下:

#!/bin/perl

#如果该路径已加入PATH中,上句可省

$MY_FILE_NAME='c:/InetPub/wwwroot/photo/1.gif';

#图形文件存放的路径

$CHUNK_SIZE=4096;

#如果图形文件较大,该值可相应取大一些

#header

print"HTTP/1.0200OK\n";

print"Content-type:image/gif\r\n";

print"\r\n";

#如果传输的图形文件为JPG文件,

只需把"image/gif"改为"image/jpeg"

open(MY_FILE,"< $MY_FILE_NAME")

ordie("Can'topen$MY_FILE_NAME:$!\n");

binmode(MY_FILE);

binmode(STDOUT);

#设置传输模式为二进制代码

while($cb=read(MY_FILE,$data,$CHUNK_SIZE))

{

print$data;

}

close(MY_FILE);

----4 如何实现服务器重导

----服务器重导也就是ServerRedirection。我们不但可以利用CGI程式产生虚拟文件,还可以要求服务器送出一个已经存在的文件(该文件可以是本服务器的,也可以是网上任意的页面),这就是服务器重导。详见下图:

1请求2

------ >---- >

4服务器重导3

client< ------server

< ----CGI(Application)

5产生虚拟文件

< ----

----做法是:在CGI程式中不要header(即不要print"HTTP/1.0200OK\n";print"Content-Type:text/HTML\n\n";这两行)和多加一行print"Location:http://***","\n\n";即可。(http://***为任意的url地址)

----源程序为:

----#!/bin/perl

----print"Location:http://***","\n\n";

----另外,可用JavaScriptForclient的语句书写,但含重导语句的页面需先出现,会有闪烁的效果。附程式如下:

Location.href="http://***";

责任编辑:admin
相关文章