首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

一个VB HTTP上传文件的有关问题

2012-04-01 
求助一个VB HTTP上传文件的问题!请教一下!我最近在用VB写一个向ASP.NET上传文件的一个小玩意,用的是winsoc

求助一个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.在接收的时候实际上是两步:文件的创建和文件的追加
[解决办法]
文件的上传需要用字节数组,不能转成字符串.
[解决办法]

VB code
    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

热点排行