我要用delphi做一个文件上传的isapi(基于http),请问如何下手?(100分)

  • 主题发起人 主题发起人 fgs
  • 开始时间 开始时间
你查找一下以前的帖子, 有有关文件上传的问题, CGI和ISAPI的方法是一样的.
另外, 可以用CGIEXPERT, 有完整的例子.
 
我找不到CGIEXPERT,请问谁能帮我?
最好讲讲原理,thank!
 
偶也听一下
 
You don't need cgiexpert.Just use isapi.
I think it is more powful.
You can see help file.I use c++builder.I find
cgi help only in c++builder 3.0 and in 4.0.
So I think you maybe will find help in delphi.
Set type to post or put.
use TISAPIRequest::TISAPIRequest
 
请继续讨论,kaven讲的太简单
 
《FORM METHOD="POST" ENCTYPE="multipart/form-data" action="xx.cgi"》
《INPUT TYPE="FILE" NAME="AName"》
...
 
你装个IIS4.0好了,里面自带了一个ISAPI,用于上载使用的
名字叫cpshost.dll
 
1、cpshost.dll是isapi吗?如何使用?
2、有谁知道http上载的原理,多thank
 
应该是,在IIS跑的除了ISAPI估计也没有别的东西了
HTTP上载原理好象在哪个RFC里定义了,不大清楚,呵呵,不好意思
 
> INPUT TYPE="FILE" NAME="AName"

这个可以打开一个“打开文件”的对话框,请问Input还有多少种其它的选项?
File,Text...有Directory吗?就是那个“浏览文件夹”。

<hr size="1">
如果用CGI,ISAPI实现上传,那么虽然得到对方的本地路径,要怎么样才能实现
上传呢?写的权限是如何设置的呢?

&: 这一点yysun应该是知道的。 :)
 
当按了submit按钮后,应该用reuest.readstring或readclient读取发送来的数据,
按照RFC1867标准,html传到服务器端的二进制数据具有类似的如下格式:

-----------------------------5fi25134734389
Content-Disposition: form-data; name="text1"

Text test
-----------------------------5fi25134734389--
Content-Disposition: form-data;
name="file1"; filename="E:/GIF/girl.gif"
Content-Type: image/gif

GIF89a? ????噜鄛}}^^^υ,? //文件数据从这里开始
-----------------------------5fi25134734389

其中, 类似于“-----------------------------5fi25134734389”
的这一段字符串我们称之为“定界符”。我们看到,html文件中的Form元素
“text1”,“file1”出现在定界符后的“name=”标记处;对text1而
言,“name=”标记后紧接两对回车换行符#13#10#13#10即是客户端输入的值,
该值结束时跟一对#13#10和一个定界符;对file1而言,“name=”标记后的
“filename=” 标记指出了客户端上载的文件的路径和文件名,下一行指出了
文件的类型,后跟两对#13#10表示文件数据的开始,文件数据结束时跟一对
#13#10和一个定界符。

所以你只要从读取到的数据里面,把文件数据剔取出来就可以了,然后保存到
上传目录下.

 
完整一点,作成控件如何。方便大家
 
控件? 那还不如用cgi expert算了,什么都替你做好了,你只要改个名字就可以了.
 
接受答案了.
 
后退
顶部