Visual C++/MFC专题讲座(1.2.3)

王朝vc·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

1.2 一种更亲切的CGI开发系统WinCGI

接下来的[Form Literal]区包含有经过解码的数据。原本格式为:key=value&key=value&...的数据经过解码后被存放于这个区,但是一些例外的情况就要使用[Form External]和[Form Huge]区。在[Form External]区中数据格式如同:key=pathname length,当上传的字符串长度大于254时,就会使用这个区,pathname指明了包含被解码后的字符存放的文件,length为字符串长度。当上传的数据长度大于64K时,数据会被存放入一个独立的文件,该文件的文件名称由[System]区中的Content File关键字指明。[Form Huge]区中数据格式如同:key=offset length其中offset为该数据在文件中的起始位置,length为数据的长度。

下面有一个例子:设输入为,a_cgi_sample.exe?name=your_name&email=your@mail.com&memo=length_gt_254

则文件中包含数据的几个区形式如下:

[Form Literal]

name=your_name

email=your@mail.com

[Form External]

;假设memo字段长度为500

memo=a_temp_file 500

最后给出一个WinCGI程序的伪代码轮廓:

void main(int argc,char** argv)

{

if(argc == 1)

error raise; //无法得到配置文件

char szCfgFile[]=argv[1];

Read [Form Literal] section for input data

char szOutFile[]=Read "Output File" key from [System] section;

fopen(szOutFile)

{

write result to outFile

close outFile

}

return ;//退出

}

总的说来,WinCGI程序与普通CGI的程序的区别不大,只是在输入输出的方法上略有区别。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航