Foxtable(狐表)用户栏目专家坐堂 → 有没有办法二进制文件时 在附件 插入文件的时候 也对应将文件名称和写入的文件名称一样呢?


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

主题:有没有办法二进制文件时 在附件 插入文件的时候 也对应将文件名称和写入的文件名称一样呢?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
有没有办法二进制文件时 在附件 插入文件的时候 也对应将文件名称和写入的文件名称一样呢?  发帖心情 Post By:2020/12/26 19:12:00 [只看该作者]

上传文件代码如下
Dim r1 As Row =Tables("事件登记").Current
Dim dlg As New OpenFileDialog
dlg.Filter = "所有文件|*.*"
If dlg.ShowDialog =DialogResult.OK Then
    Dim fl As String = dlg.FileName
    Dim r As Row = Tables("事件登记.文件附件").AddNew()
    r("文件名") = Date.now & FileSys.GetName( fl) '写入文件名
    r.Save '必须先保存
    r.DataRow.SQLInsertFile("附件",fl) '插入文件
    r.DataRow.SQLSetValue("CRC值", CRCCheckFile(fl)) '保存crc检验值
End If

上传二进制列文件   将当前长时间写入到文件名称中    怎么实现附件内容也是在名称中呢?
按照上述代码  在下载附件的时候 提示文件名对应的附件不存在  有没有办法在附件 插入文件的时候  也对应将文件名称和写入的文件名称一样呢?

打开文件事件代码:
   Dim dr As DataRow = Tables("事件登记.文件附件").Current.DataRow
    MessageBox.Show(dr("文件名"))  可以得到上述附带具体时间的文件名   但是无法对应显示文件   提示提取文件失败 求解
    Dim fl As String =  ProjectPath & "预览文件\" &  dr("文件名")
    wjdz = fl
    If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
        '则直接使用本地文件
        If fl.EndsWith(".jpg") OrElse fl.EndsWith(".png") OrElse fl.EndsWith(".bmp") OrElse fl.EndsWith(".gif") Then
            pc2.Image= GetImage(fl)
            kp.SelectedIndex=1
            kp.SelectedPage.Text=dr("文件名").SubString(0,10)
        Else  If  fl.EndsWith(".zip") OrElse fl.EndsWith(".rar")  OrElse fl.EndsWith(".exe") Then  'fl.EndsWith(".txt") OrElse fl.EndsWith(".pdf") OrElse
            Dim Proc As New Process '打开文件
            Proc.File = fl
            Proc.Start()
        Else
            web1.OfficeToolBar = False
            web1.Address = fl
            kp.SelectedIndex=0
            kp.SelectedPage.Text=dr("文件名").SubString(0,10)
        End If
        
    Else '否则从数据库提取文件
        If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
            
            Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Return
        Else
            If fl.EndsWith(".jpg") OrElse fl.EndsWith(".png") OrElse fl.EndsWith(".bmp") OrElse fl.EndsWith(".gif") Then
                pc2.Image= GetImage(fl)
                kp.SelectedIndex=0
            Else  If  fl.EndsWith(".zip") OrElse fl.EndsWith(".rar")  OrElse fl.EndsWith(".exe") Then  'fl.EndsWith(".txt") OrElse fl.EndsWith(".pdf") OrElse
                Dim Proc As New Process '打开文件
                Proc.File = fl
                Proc.Start()
            Else
                web1.OfficeToolBar = False
                web1.Address = fl
                kp.SelectedIndex=1
            End If
        End If
[此贴子已经被作者于2020/12/26 19:20:03编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/27 20:17:00 [只看该作者]

试试

r("文件名") = format(Date.now,"yyyyMMddHHmmssfffff") & FileSys.GetName( fl) '写入文件名

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)试试r("文件名") = format(Date.now,...  发帖心情 Post By:2020/12/27 20:26:00 [只看该作者]

试了一下 这个格式化时间后文件名称看起来确实美观了  
问题解决了 谢谢
[此贴子已经被作者于2020/12/27 20:29:42编辑过]

 回到顶部