员工档案系统中,有一个照片列。列属性中详细设置远程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后,照片又能录入和正常显示了。——一切又回到了原点。
我有点发蒙。分享给大家,聊以发笑。请给指条明路。