有谁用VB6做过HTTP上传文件吗,用Microsoft.XMLHTTP或者其它组件,上传到.NET或者JAVA的WEB服务器
问题的提出: 客户打开网页,已经知道客户本地硬盘上的文件路径和目录,在客户不打开文件选择窗口的情况下,
把客户的文件上传到J2EE的WEB服务器,采用JAVA的COS组件来存取文件。
初步的解决办法: 用 VB6 做一个OCX 控件,放在网页里面,把文件地址和WEB服务器上传路径传给这个控件,
然后调用这个控件的上传方法,上传文件,找了很多资料后,只是做到了可以上传文本文件,二进制文件没有搞定。
然后做了一个网页,提交一个FORM(method="post" enctype="multipart/form-data"),里面有2个文件域和一个字段域(username),提交到服务器,文件(文本,二进制)都可以正常存取。 VB6用这个空间拼请求,该怎么编码,打包,发送,希望
高手多多指教。我自己用JAVA写了一个用URL提交文件和字段的程序,都测试OK,没有问题。
参考资料: 网页提交FORM的数据流格式如下:
开始打印接收的流的内容:
1.-----------------------------7d935b2e60a60
2.Content-Disposition: form-data; name="file_1"; filename="E:\1.txt"
3.Content-Type: text/plain
4.
5.i am fiel1
6.-----------------------------7d935b2e60a60
7.Content-Disposition: form-data; name="file_2"; filename="E:\2.txt"
8.Content-Type: text/plain
9.
10.i am fiel2
11.-----------------------------7d935b2e60a60
12.Content-Disposition: form-data; name="username"
13.
14.testuser
15.-----------------------------7d935b2e60a60--
16.
流内容打印完毕
以上 "开始打印接收的流的内容:" "流内容打印完毕" 之间的内容为HTTP POST(multipart/form-data) 的流的内容.
具体格式描述为: (按上面的行号逐行描述,)
1.分隔符\r\n
2.第一个文件域的属性信息\r\n
3.第一个文件域的 Content-Type属性,如果是其他格式的,这个就不是 text/plain,可以选择的的有(
image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash,
application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
),加上 \r\n
4.\r\n
5.文件的二进制流的内容,结尾加上\r\n
6-10 是第二个文件域,与 1-5 行意义相同
11. 分隔符\r\n
12.字段域的属性信息\r\n
13.\r\n
14.该字段域的值\r\n
15.分隔符,如果这个域是最后一个,必须要有 "--\r\n" ,表示流结束。不是最后一个,可以像6或者11行那样,多加个\r\n,开始新的域