以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  有没有办法二进制文件时 在附件 插入文件的时候 也对应将文件名称和写入的文件名称一样呢?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=159441)

--  作者:李孝春
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2020/12/27 20:17:00
--  
试试

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

--  作者:李孝春
--  发布时间:2020/12/27 20:26:00
--  回复:(有点蓝)试试r("文件名") = format(Date.now,...
试了一下 这个格式化时间后文件名称看起来确实美观了  
问题解决了 谢谢
[此贴子已经被作者于2020/12/27 20:29:42编辑过]