Foxtable(狐表)用户栏目专家坐堂 → FTP批量上传,失败


  共有2345人关注过本帖树形打印复制链接

主题:FTP批量上传,失败

帅哥哟,离线,有人找我吗?
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
FTP批量上传,失败  发帖心情 Post By:2017/3/7 20:33:00 [显示全部帖子]

请教老师,以下代码批量上传文件,路径上有问题,提示上传失败,不知应该改,请教请教

 

filemanager1 能显示多个文件名,但是无法上传到服务器

用msgbox(fp & "/" & fname)弹出的路径是  

\\WJY\F:\WJY\AAA.JPG\F:\WJY\AAA.JPG

\\WJY\F:\WJY\BBB.JPG\F:\WJY\BBB.JPG

 

Dim dlg As new OpenFileDialog
Dim piv As WinForm.FileManager = e.Form.Controls("FileManager1")
    dlg.Filter= "图形文件|*.bmp;*.jpg;*.gif"
    dlg.MultiSelect = True  '文件多选

    If dlg.ShowDialog = DialogResult.OK Then
    For Each fname As String In dlg.FileNames
    piv.AddFile(fname)

 

    Dim r As Row = Tables("上传文件_Table1").Current
   
 

    Dim ftp As new FTPClient
    ftp.host="*****"
    ftp.Port = 21
    ftp.account="******"
    ftp.password="*****"
    ftp.Connect

    If ftp.Connected = True Then
        msgbox("链接成功,准备上传!")
    End If

 

    If ftp.DirExists("\WJY\" & Tables("上传文件_Table1").Current("相片")) = False Then
       ftp.MakeDir("\WJY\" & Tables("上传文件_Table1").Current("相片")) '服务器上生成文件夹
    End If

    Dim fp As String = "\WJY\" & Tables("上传文件_Table1").Current("相片")
    e.Form.text = "文件上传中...."


    If ftp.Upload(dlg.FileName,fp & "\" & fname,True) = True Then  '若成功上传
        e.Form.text = "上传新文件"
        MessageBox.Show("上传成功!","提醒")

        If r.IsNull("相片") Then
            r("相片") = fp & "\" & fname
        Else
            r("相片") = r("相片") & vbcrlf & fp & "\" & fname

         End If
      End If
msgbox(fp & "/" & fname)
   Next
End If

[此贴子已经被作者于2017/3/7 20:33:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/3/7 21:56:00 [显示全部帖子]

Tables("上传文件_Table1").Current("相片")存储的是什么数据?目录,还是文件名? 

 

是多文件的文件名


 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/3/7 22:04:00 [显示全部帖子]

错误图片

 

 


图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看

 


 


图片点击可在新窗口打开查看此主题相关图片如下:22.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/3/9 14:40:00 [显示全部帖子]

感谢老师的指导,后来我又调整了//,让文件名前符匹配,现在存在如下问题

 

1.批量上传图片到服务器上可以实现,服务器里面的文件夹里面也有上传的图片,但是 PictureViewer1里面只会显示其中一张图片,或者都不显示图片,只显示文件名

 

2.如果只上传一张图片,PictureViewer1里面开始只显示小红叉,切换表行再返回到当前行后,图片能显示,同时RemoteFiles远程文件夹里面自动下载图片进来,如果把

   RemoteFiles里面的当前图片删除,PictureViewer1就不显示图片

 

 

代码如下

Dim dlg As new OpenFileDialog
Dim piv As WinForm.PictureViewer = e.Form.Controls("PictureViewer1")
    'dlg.Filter= "图形文件|*.bmp;*.jpg;*.gif"
    dlg.MultiSelect = True  '文件多选
    If dlg.ShowDialog = DialogResult.OK Then
    For Each fname As String In dlg.FileNames
    piv.AddFile("//" & FileSys.GetName(fname))
 
    Dim r As Row = Tables("上传文件_Table1").Current
   
    Dim ftp As new FTPClient
    ftp.host="*****"
    'ftp.Port = 21
    ftp.account="****"
    ftp.password="****"
    ftp.Connect
    If ftp.Connected = True Then
        msgbox("链接成功,准备上传!")
    End If
 
    If ftp.DirExists("\WJY\") = False Then
       ftp.MakeDir("\WJY\") '服务器上生成文件夹
    End If
    Dim fp As String = "\WJY\" & FileSys.GetName(fname)
    e.Form.text = "文件上传中...."


    If ftp.Upload(dlg.FileName,fp,True) = True Then  '若成功上传
        e.Form.text = "上传新文件"
        MessageBox.Show("上传成功!","提醒")
           End If
     Next
End If

 

示例图片


此主题相关图片如下:44.jpg
按此在新窗口浏览图片


 


此主题相关图片如下:33.jpg
按此在新窗口浏览图片

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/3/9 15:58:00 [显示全部帖子]

老师,如果要在 RemoteFiles 里面才能显示的话,这样太占空间了,另外也不利于文件的权限管理,如果A用户要查看B用户已经上传的文件,是无法看到的(只有文件名),除非要下载下来才行。

 回到顶部