post上传头像问题

w20619543 2014-10-16 07:10:55
喜马拉雅网,post上传头像始终失败,求大婶们帮忙!
这是抓的包
------------Ef1KM7ei4ae0Ij5ei4Ef1Ij5gL6Ef1
Content-Disposition: form-data; name="Filename"

016.jpg
------------Ef1KM7ei4ae0Ij5ei4Ef1Ij5gL6Ef1
Content-Disposition: form-data; name="Filedata"; filename="016.jpg"
Content-Type: application/octet-stream

?? JFIF ? ? ?HPhotoshop 3.0 8BIM $) 8BIM% a9?襳ec丌8BIM? ? ? 8BIM& ?€ 8BIM
8BIM 8BIM? 8BIM
8BIM'
8BIM? H /ff lff /ff ? 2 Z 5 - 8BIM? p ? ? ? ? 8BIM 8BIM 8BIM0 8BIM- 8BIM @ @ 8BIM 8BIM 9 ? ? 1 2 ? ? null boundsObjc Rct1 Top long Leftlong Btomlong ? Rghtlong ? slicesVlLs Objc slice sliceIDlong groupIDlong originenum ESliceOrigin
autoGenerated Typeenum
ESliceType Img boundsObjc Rct1 Top long Leftlong Btomlong ? Rghtlong ? urlTEXT nullTEXT MsgeTEXT altTagTEXT cellTextIsHTMLbool cellTextTEXT horzAlignenum ESliceHorzAlign default vertAlignenum ESliceVertAlign default bgColorTypeenum ESliceBGColorType None topOutsetlong
leftOutsetlong bottomOutsetlong rightOutsetlong 8BIM( ?? 8BIM 8BIM 9 ? k ? 葼 ?? JFIF H H ? Adobe_CM ? Adobe d€ ? ?



? k ?" ?
??

3 !1AQa"q?憽盉#$R羈34r傃C%扴疳馽s5⒉?D揟dE拢t6襏鈋虺劽觰泱F'敜叴暷凿籁蹬斟鮒fv問Χ浦骣7GWgw嚄Х亲琪 5 !1AQaq"2亼”B#罵佯3$b醨倰CScs4?⒉?&5乱D揟?dEU6te怛硠糜u泱F敜叴暷凿籁蹬斟鮒fv問Χ浦骣'7GWgw嚄Х?? ? 襺竨群咲:,.......
..............
..............
等等一大段乱码
..............
..............
暥啢m? ?3犐k2伩P :%拹拑em蟈$﹂鞱颂K+0C愆?塒 ?-?脀&?|'8燬j虇
g蝈)襶忋钘鑯L豴??.K煍鴕遆か灧 y凉7#坳 Z帠&蹐?螾锳9?昸e !噗re胣黑膷<m?*M?!U頡絫?/袏躌Tm?鎌h DAV?恘@萩>^郒?m/4? 娡ɑ?#'??N株5y諜轾謅?鴺鋆申w?莇-22??箮剑3 ?^溛J?樳(痖 锻驣GB醃教菛?漙 @_姃?柵札啟I 4?琫攤I翱?N??
------------Ef1KM7ei4ae0Ij5ei4Ef1Ij5gL6Ef1
Content-Disposition: form-data; name="Upload"

Submit Query
------------Ef1KM7ei4ae0Ij5ei4Ef1Ij5gL6Ef1--

包头数据如下

我写的post头像如下
Private Sub UpdataPic(sUrl As String, sFileName As String)
Dim PicBuffer() As Byte
Dim PostData As String
Dim UpdataPicCookie_POST As String
Dim Get30Wei As String
Dim UpdateTouXiangFanHui As String

Get30Wei = Get30

Open sFileName For Binary As #4
ReDim PicBuffer(0 To LOF(4) - 1) As Byte
Get #4, , PicBuffer
PostData = StrConv(PicBuffer, vbUnicode)
Close #4

PostData = "------------" & Get30Wei & vbCrLf & _
"Content-Disposition: form-data; name=""Filename""" & vbCrLf & vbCrLf & _
Mid$(sFileName, InStrRev(sFileName, "\") + 1) & vbCrLf & _
"------------" & Get30Wei & vbCrLf & _
"Content-Disposition: form-data; name=""Filedata""; filename=""" & Mid$(sFileName, InStrRev(sFileName, "\") + 1) & """" & vbCrLf & _
"Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _
PostData & _
"------------" & Get30Wei & vbCrLf & _
"Content-Disposition: form-data; name=""Upload""" & vbCrLf & vbCrLf & _
"Submit Query" & vbCrLf & _
"------------" & Get30Wei & "--"

With CreateObject("Microsoft.XMLHTTP")
.Open "POST", sUrl, True
.SetRequestHeader "Content-Type", "multipart/form-data; boundary=----------" & Get30Wei
.SetRequestHeader "Cookie", PostCookie
.Send pvToByteArray(PostData)
While .ReadyState <> 4
DoEvents
Wend
UpdateTouXiangFanHui = StrConv(.responseBody, vbUnicode)
End With
End Sub

Private Function pvToByteArray(sString As String) As Byte()
Dim adoStream As Object
Set adoStream = CreateObject("ADODB.Stream")
adoStream.Charset = "utf-8"
adoStream.Type = 2
adoStream.Open
adoStream.WriteText sString
adoStream.Position = 0
adoStream.Type = 1
GB2312ToUTF8 = adoStream.Read()
adoStream.Close
End Function

上传头像始终不对,不知道哪的问题。求指导,谢谢!
...全文
393 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcymiss 2014-11-03
  • 打赏
  • 举报
回复
1、不能把文件流转文本后与其他文本连接,而应将其他文本转为buffer后与文件流连接。(数组连接,adostream连,copymemory连都可以) 2、adostream转文本为utf-8编码时前面会有3个字节的BOM头,要去掉。在“adoStream.Type = 1 ”后面加句:adoStream.Position = 3 就可以了。
Carlven2012 2014-10-20
  • 打赏
  • 举报
回复
Get30Wei是个什么东东?
w20619543 2014-10-19
  • 打赏
  • 举报
回复
求答疑解惑!!!
w20619543 2014-10-17
  • 打赏
  • 举报
回复
自己顶一下,希望有人帮忙解决!感谢

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧