用inet上传图片(模拟的是百度空间图片上传)以下为数据包结构(删减)----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="num"1600
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spQuality"KarS096.jpg
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spPhotoFile0"; filename="C:\Documents and Settings\T.G.H\My Documents\My Pictures\KarS096.jpg"
Content-Type: image/pjpeg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%图片文件码区域%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
----MULTI-PARTS-FORM-DATA-BOUNDARY--
现在需要将以上数据赋值到变量sPost中,然后用inet提交
Inet1.Execute "http://hiup.baidu.com/xxx/upload", "Post", sPost , "Content-Type: xxx"问题出现了.
当sPost为string时,图片文件码会被破坏(open for binary再binaryArr to string)
而inet又不允许提交byte格式(先不说带中文的string转成byte十分困难)那么应该如何提交呢?
有没有办法在不破坏图片文件内容的情况下提交这个数据包呢?
要是可以用16进制保存这些变量就好了啊..
Content-Disposition: form-data; name="num"1600
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spQuality"KarS096.jpg
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spPhotoFile0"; filename="C:\Documents and Settings\T.G.H\My Documents\My Pictures\KarS096.jpg"
Content-Type: image/pjpeg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%图片文件码区域%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
----MULTI-PARTS-FORM-DATA-BOUNDARY--
现在需要将以上数据赋值到变量sPost中,然后用inet提交
Inet1.Execute "http://hiup.baidu.com/xxx/upload", "Post", sPost , "Content-Type: xxx"问题出现了.
当sPost为string时,图片文件码会被破坏(open for binary再binaryArr to string)
而inet又不允许提交byte格式(先不说带中文的string转成byte十分困难)那么应该如何提交呢?
有没有办法在不破坏图片文件内容的情况下提交这个数据包呢?
要是可以用16进制保存这些变量就好了啊..
这些数据是数据包中data的内容.数据包的其他部分我也仿照抓的包做好了,现在就是图片文件这里的问题了
抓到的数据包如下
POST /xlrtx/upload HTTP/1.1
Content-Type: multipart/form-data; boundary=--MULTI-PARTS-FORM-DATA-BOUNDARY
Accept: */*
Content-Length: 129533
User-Agent: Mozilla/4.0 (compatible; )
Host: hiup.baidu.com
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: %baiducookie%
'--------分割线---------
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="fromsobar"1
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="ct"4
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="cm"1
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="BrowserType"1
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spAlbumName"文件
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="num"1
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spMaxSize"1280
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spQuality"80
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spPhotoText0"1.JPG
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="spPhotoFile0"; filename="C:\1.JPG"
Content-Type: image/pjpeg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%图片文件码区域%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
----MULTI-PARTS-FORM-DATA-BOUNDARY--
现在的问题是:
要成功发送这个数据包,分割线以下的数据要放到一个变量里
但是这些数据既包含普通的参数,还包含了图片的文件码
图片的文件码赋值到string变量中会被破坏
而这些数据又不能赋值到byte变量中这该怎么做好呢?
我用的百度工具栏上传的图片,它是怎么做到的?
消息体中图片用BASE64编码 上传试试
ADODB+XMLHTTP,谢谢大家帮助
详细请看
http://hi.baidu.com/xlrtx/blog/item/12c312332d07f8f01a4cff8b.html