以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于客户端类 文件的下载问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178815)

--  作者:堕落的后天
--  发布时间:2022/7/22 10:34:00
--  [求助]关于客户端类 文件的下载问题
软件做了3层架构   在服务端代码如下 

Select Case e.Path
    Case "DataServer.htm"
        e.AsDataServer("综合管理数据源")  \'将一个本地数据源公开为Web数据源
        
        
        
    Case "test2.htm"
        
        For Each key As String In e.Files.Keys
            
            For Each fl As String In e.Files(key)
                
                e.SaveFile(key,fl,"Resource\\" & fl) \'保存接收到的文件
                e.WriteString("图片已保存!")
            Next
        Next
        
    Case "test1.htm"
        Dim pth As String = e.PlainText
        
        FileSys.DeleteFile(pth,2,2)
        e.WriteString("文件已删除!")
        
        
        
    Case "test.htm"
        
        If FileSys.FileExists("Resource\\" & e.PlainText )    Then
            e.WriteString("文件存在!")
            e.WriteFile("Resource\\" & e.PlainText )
        Else
            e.WriteString("文件不存在!")
            
        End If
        
        
End Select


客户端 代码  

Dim lst As New List(of String)
Dim ip As String = e.Form.Controls("TextBox10").text

lst = Tables("详情表").Current.DataRow.Lines("工单")

For Each Name As String In lst
    If FileSys.FileExists("Resource\\" & Name ) Then
        
    Else
        
        Dim hc As New HttpClient("http://" & ip & ":32177/test.htm")
        hc.Timeout = 5 \'设置超时为5秒
        hc.Content = Name
        Dim ret As String = hc.GetData()
       MessageBox.show(ret)
        If hc.GetFile("Resource\\" & Name ) Then
            MessageBox.show("文件下载成功","提示")
        Else
            MessageBox.show("文件下载失败","提示")
        End If
        
        
    End If
    
    
    
    
    
Next


在客户端连接Web数据源 代码如下  

Dim ip As String = e.Form.Controls("TextBox10").text



Dim sb As New StringBuilder
sb.AppendLine("http://" & ip & ":32177/DataServer.htm")

Connections.Add("综合管理数据源",sb.ToString)


---------------------


1.现在问题是我上传图片  在线删除图片都没问题  就是从服务器下载图片提示错误(关了杀毒软件  也试过关闭防火墙)

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.9.8.1
错误所在事件:
详细错误信息:
请求被中止: 连接被意外关闭。

2.在客户端连接Web数据源 数据源可以联通  但是一直提示  综合管理数据源已存在

(客户端的软件原来默认连接的数据源如下   Provider=Microsoft.Jet.OLEDB.4.0;Data Source= 全通mdb.mdb;Persist Security Info=False









--  作者:有点蓝
--  发布时间:2022/7/22 10:47:00
--  
去掉e.WriteString("文件存在!")
--  作者:堕落的后天
--  发布时间:2022/7/22 11:33:00
--  
一开始就是没有这句的  我是找不到错误  才加的  ,还是一样报错
--  作者:有点蓝
--  发布时间:2022/7/22 11:50:00
--  
使用完整路径,比如

        If FileSys.FileExists("c:\\xxx\\xxx\\Resource\\" & e.PlainText )    Then
            e.WriteFile("c:\\xxx\\xxx\\Resource\\" & e.PlainText )
        Else
            e.WriteString("文件不存在!")
            
        End If

------------------
        If hc.GetFile("c:\\xxx\\xxx\\Resource\\" & Name ) Then
            MessageBox.show("文件下载成功","提示")
        Else
            MessageBox.show("文件下载失败","提示")
        End If

--  作者:堕落的后天
--  发布时间:2022/7/22 15:48:00
--  
还是一样的错误  我直接用完整路径测试固定图片  也不行  

请求被中止: 连接被意外关闭。

--  作者:有点蓝
--  发布时间:2022/7/22 16:31:00
--  
文件是不是比较大?去掉Dim ret As String = hc.GetData()

        Dim hc As New HttpClient("http://" & ip & ":32177/test.htm")
        hc.Timeout = 500 
hc.SkipError = True
        hc.Content = Name
        If hc.GetFile("Resource\\" & Name ) Then
            MessageBox.show("文件下载成功","提示")
        Else
            MessageBox.show("文件下载失败","提示")
        End If

--  作者:堕落的后天
--  发布时间:2022/7/22 16:58:00
--  
是的  这句话删掉就好了  文件不大  我觉得是获取的指令不能同时排布  谢谢老师