Internet/Intranet在九十年代可能是最流行的计算机术语了,不管是计算机行业内的人士还是计算机外的人士,都会使用Internet/Intranet,有的查资料,有的是宣传自己和公司,甚至有许多以前从没有想到用Internet的东西现在也在用Internet来解决,比如有的程控数字计算机维护用Internet来解决。在这一切应用之中,基于Web Server的应用程序的开发是基本点,但如何开发Web Server的程序呢?
Delphi 3是Borland公司1997年推出的可视化、面向对象的高效率的快速应用程序开发工具(RAD),提供了大量的最新功能,例如开发COM/DCOM,一步开发ActiveX对象,多层数据库应用程序MIDAS等,并且使用Delphi 3开发基于Web服务器的程序,如ISAPI/NSAPI,Win-CGI,CGI程序都十分方便。
使用Delphi 3开发Web Server程序是非常简单,方便的,因为在Delphi中提供了Web Module, WebApplication, TWebRequest,TWebResponse,TPageProducer等大量的对象供使用。而且由于Delphi强大的数据库开发能力,使得Web Server程序的开发更是锦上添花。在本文中主要讨论一般Web Server程序的开发,希望给您一个抛砖引玉的作用。
一般Web Server返回的信息有基于HTML的文字流和图像流,如Jpeg和Gif等。返回文字流的方法是使用TwebResponse.Content,在Delphi 3的Demos中有这样的例程,但如何返回图像呢?
返回图像的方法是用TwebResponse.ContentStream和TjpegImage类。具体实现如下,例如您有三张图片,希望在别人访问您的主页时能随机的显示一张,在您的主页中有如下的HTML语句:< IMG SRC="/scripts/mypict.dll"> ,那么在您的Web Server的缺省的TwebActiveItem中如下处理:
var Jpg: TJpegImage; S: TMemoryStream; I: Integer; Begin Randomize; I:= Random(3); Jpg := TJpegImage.Create; try Jpg.LoadFromFile('C:\WebShare\Scripts\test'+IntToStr(I)+'.Jpg'); S := TMemoryStream.Create; try Jpg.SaveToStream(S); S.Position := 0; Response.ContentType := 'image/jpeg'; Response.ContentStream := S; Response.SendResponse; finally S.Free; end; finally Jpg.Free; end; end;
因为使用了TJpegImage类,所以必须在Uses中添加对JPEG文件的包含。
|