上传文件
通过HttpClient上传文件非常简单,只需将要上传的文件添加到HttpClient的Files集合即可。
向Files添加上传文件的语法为:
Add(ID,FileName)
ID | 文件上传组件的ID。 |
FileName | 要上传的文件,含路径,一个ID下可以添加多个文件。 |
关于HttpServer是如何接收和保存客户端上传文件的,请参考:文件的上传与接收
一个例子
1、服务端项目的HttpRequest事件代码:
Dim
Verified As
Boolean
If
e.PostValues.ContainsKey("username")
AndAlso e.PostValues.ContainsKey("password")
Then
'实际开发的时候,请改为根据用户表验证身份
Dim
username As
String = e.PostValues("username")
Dim password
As String
= e.PostValues("password")
If username
= "张三"
AndAlso password
= "888" Then
Verified =
True
End
If
End
If
If
Verified = False
Then
e.AppendCookie("error","用户身份验证失败!")
'通过Cookie返回错误信息.
Return
End
If
Select
Case e.Path
Case "upload.htm"
Dim
sb As New
StringBuilder
sb.AppendLine("服务器收到的文件有:")
For Each
key As
String In
e.Files.Keys
sb.AppendLine(Key)
For Each
fl As
String In
e.Files(key)
sb.AppendLine("
" & fl)
e.SaveFile(key,fl,"d:\web\uploadfiles\"
& fl)
'保存接收到的文件
Next
Next
e.WriteString(sb.ToString)
End
Select
2、客户端可以通过以下代码上传文件:
Dim
hc As
New HttpClient("http://127.0.0.1/upload.htm")
hc.FormData.Add("username","张三")
hc.FormData.Add("password","888")
hc.Files.Add("up1","c:\data\abc.jpg")
hc.Files.Add("up1","c:\data\订单.xls")
hc.Files.Add("up2","c:\data\附件.zip")
Dim
ret As
String = hc.getData()
If
hc.rCookies.ContainsKey("error")
Then
MessageBox.Show(hc.rCookies("error"))
Else
MessageBox.Show(ret)
End
If
提示:本示例的身份信息通过表单传递,而不是通过Cookie,使用哪种方式都可以,记得实际开发的时候,不要使用username和password这样指示性很强的名称。