以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  文件和图片的问题2  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51752)

--  作者:bagabaga
--  发布时间:2014/6/2 20:09:00
--  文件和图片的问题2
1、在FOXTABLE中,每当我们在文件型、多文件型、以及图片型列中插入一个文件时,程序会自动将该文件复制到项目文件所在目录的子目录Attachments下。
2、实际上用户在添加文件的时候,只是把文件从只是把原始目录复制到项目文件的子目录Attachments下,没有上传到网络,没有网络地址和文件对应。
3、当用户需要在记录中调用这些文件时,程序就到Attachments中查找,如果是编制的时候就加入目录Attachments的,和程序一起复制过来,是可以调用的;
   如果是用户后期添加的文件,别的用户在这个目录中是找不到的,就不能调用。
4、FOXTABLE的文件列,文件列要有对应的ip地址,文件要上传到服务器中,这样才能实现共享。没有共享,新增员工的照片就会找不到。

--  作者:Gryvip
--  发布时间:2014/6/3 1:24:00
--  
\'楼主,你好,这是我在用的代码,可以正常使用,能不能再优化,那就要请高手出招啦,你参考一下.
\'说明:QJDM开头的是预先设置的全局代码-字符变量

Dim ftp1 As new ftpclient
ftp1.host= QJDMFTP地址       \'返回或设置FTP服务器地址,可以是域名或IP地址
\'ftp1.Port= "21"             \'默认为21,若没修改过串口可以省略此行
ftp1.Account = QJDMFTP名称   \'返回或设置登录用户名
ftp1.password = QJDMFTP密码  \'返回或设置登录密码
ftp1.RootDir = "/" & QJDMFTP名称 & "/web/"         \'设置根目录.
Dim dtml As String  =  QJDM工程简称 & "/员工照片/"   \'设置字符变量mulc(根据条件生成动态目录名称).

If ftp1.DirExists(dtml) Then   \'判断目录是否存在
Else
    ftp1.MakeDir(QJDM工程简称)  \'逐步创建目录,FT现在只能逐步创建目录
    ftp1.MakeDir(QJDM工程简称 & "/员工照片") \'逐步创建目录,FT现在只能逐步创建目录
End If

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog  *.bmp;
dlg.Filter= "图形文件|*.bmp;*.jpg;*.jpeg;*.gif;*.TIFF;*.GIF;*.PNG;*.ico" \'设置筛选器
\'dlg.MultiSelect = True \'设置为True,可以选择多个文件,删除此行默认只可以单选文件
If dlg.ShowDialog = DialogResult.OK Then \'如果用户选择了文件并且单击了确定按钮
    For Each ftp2 As String In dlg.FileNames \'遍历选择的文件名称
        Dim wjmc As String = dtml & QJDM用户名称 & "-" & FileSys.GetName(ftp2) \'设置变量wjmc(文件名称)=指定条件组合而成
        If ftp1.Upload(ftp2,wjmc,True) = True Then \'如果上传文件成功(Upload("","",True),设为True,则显示上传进度条)
            Tables("员工信息").Current("照片") = "/" & QJDMFTP名称 & "/web/" & wjmc \'向指定表当前行的指定列(照片)写入FTP的文件路径,引用该文件
        Else
            Messagebox.show("上传失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        End If
    Next
End If

--  作者:bagabaga
--  发布时间:2014/6/3 10:32:00
--  
谢谢,学习