求助一个VB HTTP上传文件的问题!
请教一下!我最近在用VB写一个向ASP.NET上传文件的一个小玩意,用的是winsock,大致方法如下:
strBody = "--" & strBoundary & vbCrLf
strBody = strBody & "Content-Disposition: form-data; name=""" & UploadName & """; filename=""" & _
FileName & """" & vbCrLf
strBody = strBody & "Content-Type: " & MimeType & vbCrLf
strBody = strBody & vbCrLf & strData //问题就出在这里!strData是读取的本地文件的二进制然后转换的String
strBody = strBody & vbCrLf & "--" & strBoundary & "--"
strHttp = "POST " & DestUrl.URI & "?" & DestUrl.Query & " HTTP/1.0" & vbCrLf
strHttp = strHttp & "Host: " & DestUrl.Host & vbCrLf
strHttp = strHttp & "Content-Type: multipart/form-data, boundary=" & strBoundary & vbCrLf
strHttp = strHttp & "Content-Length: " & lngLength & vbCrLf & vbCrLf
strHttp = strHttp & strBody
Winsock1.Protocol = sckTCPProtocol
Winsock1.RemoteHost = DestUrl.Host
Winsock1.SendData strHttp
然后我asp.net写了一个页面,用Request.Files接收
问题就像上面说的,我加了上面红色字的地方我的asp.net页面就获取不到文件,不加strBody = strBody & vbCrLf & strData就能获取到文件!但是文件内容是空的!请问这是为啥?求高人指点下!谢谢了!
[解决办法]
文件的传送应该注意:
1.需要一定的时间
2.在接收的时候实际上是两步:文件的创建和文件的追加
[解决办法]
文件的上传需要用字节数组,不能转成字符串.
[解决办法]
Dim buff() As Byte ReDim buff(FileLen(YourFile) - 1) Open YourFile For Binary As #1 Get #1, , buff Close #1 '…… Winsock1.SendData buff
[解决办法]
缺少 Content-Transfer-Encoding