|
|
|
利用Perl开发Internet/Intranet应用之二(3) | |
|
|
|
作者:佚名 来源:网络 时间:2005-12-8 17:12:31 浏览: |
|
|
|
|
----3 图形文件的处理
----虽然client经常向服务器申请的都是text/html文件,但是服务器也可以回送GIF、JPG等图形文件,我们只需在数据的header中指明即可。假如我们用< imgsrc="http://10.0.0.1/Scripts/te.pl" >语句调用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的语句书写,但含重导语句的页面需先出现,会有闪烁的效果。附程式如下:
< Script > Location.href="http://***"; < /Script >
|
|
|
|
①
|
凡本网注明“来源:范文123网(范文网123)”的所有作品,版权均属于范文123网(范文网123),未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:范文123网”。违反上述声明者,本网将追究其相关法律责任。 |
| ② |
凡本网注明“来源:XXX(非范文123网)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 |
| ③ |
如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。 |
|
| |