上传文件代码如下
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编辑过]