上传文件

通过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这样指示性很强的名称。

 


本页地址:http://www.foxtable.com/mobilehelp/topics/0161.htm