Foxtable(狐表)用户栏目专家坐堂 → 多用户通过FTP录入员工档案中的照片问题,请教解决


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

主题:多用户通过FTP录入员工档案中的照片问题,请教解决

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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
多用户通过FTP录入员工档案中的照片问题,请教解决  发帖心情 Post By:2019/1/5 22:26:00 [只看该作者]

员工档案系统中,有一个照片列。列属性中详细设置远程FTP后,上传、下载、点击图片管理窗口等全部正常。但是我想为不同的部门不同的用户设置各自的FTP文件夹,问题出现了。
首先,我通过按钮,可以在FTP服务端自动建立用户文件夹,并能设置其根目录。(感觉这个根目录设置,仅仅是个功能测试吧,在具体的照片列、单元格图片文件上传的时候,这个根目录限制恐怕不会有效,因为没看到它和列属性挂起钩来呢。)
第二步,我想将上述FTP设置与表格的照片列属性对应起来。
想了两个方案:
方案一是动态设置列属性,将用户信息,主要是他的FTP根目录等信息写入列属性。这样,每个不同用户就能各自使用自己的FTP文件夹了。
方案二是在表事件的beforeaddfile事件中,写入代码:
Dim ftp1 As New FtpClient
ftp1.Host="43.35.11.151"
ftp1.Account = "ftpuser"
ftp1.Password = "ftp008"

If ftp1.DirExists("\员工档案\" & user.name) = False Then
    Dim Result As DialogResult
    Result = messagebox.Show("您的用户目录没有建立,当前建立吗?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)
    If Result = DialogResult.cancel Then
        MessageBox.Show("好好学习吧,你会认同这个看法的.","提示")
        Return
    Else
        If ftp1.MakeDir("\员工档案\" & user.name) = False Then
            Messagebox.Show("创建用户FTP目录失败!")
            Return
        Else
            Messagebox.Show("创建用户FTP目录成功!")
            ftp1.Changedir("\员工档案\" & user.name)
            ftp1.MakeDir("员工照片")
            ftp1.MakeDir("证件照片")
            ftp1.MakeDir("文档资料")
        End If
    End If
End If
ftp1.RootDir = "\员工档案/" & user.name '设置根目录
ftp1.Changedir("\员工照片") '这句命令无论如何执行不了,不知道什么原因.
ftp1.OpenManager()

测试运行上述代码,建立用户FTP文件夹等都没有问题,上传下载打开文件也没有问题,但是,它打开的仅仅是一个FTP管理器,单元格中,不能写入文件!
另外,我在列属性上做了一些变动,设置远程上传=false,前面的代码执行后,关闭FTP管理窗口,会出现一个本地文件上传对话框;如果设置远程上传=true,不设置详细地址,FTP窗口关闭后,会继续出现FTP文件选择窗口,并提示出错。如果在列属性中详细设置FTP,则不能实现区分用户FTP文件夹的目标。
后来我在整段代码的前面,加了一句代码:
e.Cancel = True 
FTP管理窗口打开、关闭都很利索干净,后来才发现,不仅新的照片文件录入不了单元格中,原来录入的照片内容,也断了路径,显示不了了。
列属性中详细设置了FTP后,照片又能录入和正常显示了。——一切又回到了原点。
我有点发蒙。分享给大家,聊以发笑。请给指条明路。

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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
  发帖心情 Post By:2019/1/5 23:12:00 [只看该作者]

用命令按钮设置照片列,代码如下:

DataTables("员工基础表").DataCols("照片").Remote = True
'DataTables("员工基础表").DataCols("照片").FTPClient
DataTables("员工基础表").DataCols("照片").FTPClient.Host="43.925.11.51"
DataTables("员工基础表").DataCols("照片").FTPClient.Account = "ftpuser"
DataTables("员工基础表").DataCols("照片").FTPClient.Password = "ftp008"
DataTables("员工基础表").DataCols("照片").FTPClient.RootDir = "\员工档案/" & user.name
If DataTables("员工基础表").DataCols("照片").FTPClient.Connect Then '连接FTP
    Messagebox.show("连接FTP成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    messagebox.Show(DataTables("员工基础表").DataCols("照片").FTPClient.CurrentDir)
End If



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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
  发帖心情 Post By:2019/1/5 23:13:00 [只看该作者]


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

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

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

最后,请问大侠们,本列的列属性该如何设置?
[此贴子已经被作者于2019/1/5 23:15:07编辑过]

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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
  发帖心情 Post By:2019/1/5 23:28:00 [只看该作者]

呵呵,正常了,用后一种方法,删除第一种方法的表事件代码后,正常了。

 回到顶部