一般来讲,我是不用Interner Transfer控件来上传数据的.因为有灵活的选择:Winsock.先说说协议的问题吧.如果是用winsock,通过tcp/tp来实现http的话,那么就会用到post这个http命令来上传大批量的数据.如果你截获过http协议的一个上传操作的话,那么他的头部信息可能会有这样的话:Content-Type: multipart/form-data; boundary=---------------------------7d22823d74那等号后面的,就是在头部以后,用来把数据体分割开的标记.当然,这是随机的,我只是举个例子.这就是http协议在上传大批量数据与一般页面请求时协议头部的重要区别.而http的体部则是你要上传的数据内容.如果你要上传的是几部分数据(文件),那么就需要用刚才头部定义的分割符分割.说到这,我想你应该明白了,为什么我不用Interner Transfer写文件上传,因为Interner Transfer更改头部信息并不是很方便.而且,你一样要向他提交你的数据.看看语法吧.  object.Execute url, operation, data, requestHeaders很明显,data是刚刚提到的数据体.你可以把要上传的东西放在这里,但是,微软官方的文档上说到:"字符串,指定用于操作的数据",他可没说那是二进制的.所以,我也不知道对于二进制数据可行不可行.
你可以在requestHeaders处插入你需要向协议头部添加的条目,以指出你对数据用的是什么样的分割符.
operation要选择post命令. url 就是请求的地址.我没有使用Interner Transfer实现过该操作,但是我用winsock成功实现了.至于服务器端的asp脚本,应该是很宽泛的.你完全可以利用现有的以页面上传文件的脚本来实现用程序上传.问题在于,你必须了解应用程序发出什么样的请求你的asp脚本才能接受.我想,对你最有益的应该是对http协议的了解.你说呢?希望我所说的会对你有所帮助.

解决方案 »

  1.   

    一般来讲,我是不用Interner Transfer控件来上传数据的.因为有灵活的选择:Winsock.先说说协议的问题吧.如果是用winsock,通过tcp/tp来实现http的话,那么就会用到post这个http命令来上传大批量的数据.如果你截获过http协议的一个上传操作的话,那么他的头部信息可能会有这样的话:Content-Type: multipart/form-data; boundary=---------------------------7d22823d74那等号后面的,就是在头部以后,用来把数据体分割开的标记.当然,这是随机的,我只是举个例子.这就是http协议在上传大批量数据与一般页面请求时协议头部的重要区别.而http的体部则是你要上传的数据内容.如果你要上传的是几部分数据(文件),那么就需要用刚才头部定义的分割符分割.说到这,我想你应该明白了,为什么我不用Interner Transfer写文件上传,因为Interner Transfer更改头部信息并不是很方便.而且,你一样要向他提交你的数据.看看语法吧.  object.Execute url, operation, data, requestHeaders很明显,data是刚刚提到的数据体.你可以把要上传的东西放在这里,但是,微软官方的文档上说到:"字符串,指定用于操作的数据",他可没说那是二进制的.所以,我也不知道对于二进制数据可行不可行.
    你可以在requestHeaders处插入你需要向协议头部添加的条目,以指出你对数据用的是什么样的分割符.
    operation要选择post命令. url 就是请求的地址.我没有使用Interner Transfer实现过该操作,但是我用winsock成功实现了.至于服务器端的asp脚本,应该是很宽泛的.你完全可以利用现有的以页面上传文件的脚本来实现用程序上传.问题在于,你必须了解应用程序发出什么样的请求你的asp脚本才能接受.我想,对你最有益的应该是对http协议的了解.你说呢?希望我所说的会对你有所帮助.