以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 二进制增加图片附件,删除后再增加此文件不能正常显示 。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139102) |
-- 作者:unverse -- 发布时间:2019/8/6 0:17:00 -- 二进制增加图片附件,删除后再增加此文件不能正常显示 。 设计了一个上传略图片功能,存储数据二进制字段中,新增加的图片正常,删除后再增加以前增加过的图片不能预览,也不能正常打开,不知道原因在哪里,我贴一下代码: 增加按钮: If Tables("维护日志").Current Is Nothing Then Return End If If Tables("维护日志").Current.Locked = True MessageBox.Show("请点击修改日志后再执行本操作!~","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return End If Dim dr As DataRow = Tables("维护日志").Current.DataRow Dim dlg As New OpenFileDialog dlg.Filter = "文件|*.*" If dlg.ShowDialog = DialogResult.OK Then Dim fj As DataRow =DataTables("附件").AddNew fj("ID")= dr("ID") Dim mc() As String = dlg.FileName.Split("\\") fj("附件名称")=mc(mc.Length-1) Dim s() As String = dlg.FileName.Split(".") \'获取扩展名,防止文件名中含有.?这样可以取最后一个数组内容加.获取扩展名 fj("扩展名")= "." & s(s.Length-1) DataTables("附件").save fj.SQLInsertFile("内容",dlg.FileName) \'插入文件 End If \'刷新列表 Dim lbx As WinForm.ListBox = Forms("日志录入").Controls("ListBox1") lbx.ComboList = DataTables("附件").GetComboListString("附件名称","ID=\'" & Tables("维护日志").Current("ID") & "\'") 删除按钮: If Tables("维护日志").Current Is Nothing Then Return End If If Tables("维护日志").Current.Locked = True MessageBox.Show("请点击修改本条日志后再执行本操作!~","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return End If Dim lbx As WinForm.ListBox = e.Form.Controls("ListBox1") If MessageBox.Show("确认删除附件:" & lbx.SelectedItem & "吗?","删除提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=6 Then DataTables("附件").SQLDeleteFor("ID=\'" & Tables("维护日志").Current("ID") & "\' and 附件名称=\'" & lbx.SelectedItem & "\'") MessageBox.Show("删除成功!","删除提示",MessageBoxButtons.OK,MessageBoxIcon.Information) End If \'\'刷新列表 lbx.ComboList = DataTables("附件").SQLGetComboListString("附件名称","ID=\'" & Tables("维护日志").Current("ID") & "\'") 查看按钮 If Tables("维护日志").Current Is Nothing Then Return End If Dim lbx As WinForm.ListBox = e.Form.Controls("ListBox1") If lbx.SelectedItem Is Nothing MessageBox.Show("请先选择要打开的附件再执行本操作!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return End If Dim dr As DataRow = DataTables("附件").Find("附件名称=\'" & lbx.SelectedItem & "\' and ID=\'" & Tables("维护日志").Current("ID") & "\'") Dim fl As String = ProjectPath & "fujian\\" & lbx.SelectedItem MessageBox.Show(fl) MessageBox.Show("附件名称=\'" & lbx.SelectedItem & "\' and ID=\'" & Tables("维护日志").Current("ID") & "\'") If dr.SQLLoadFile("内容",fl) Then \'如果提取文件成功 Dim Proc As New Process \'打开文件 Proc.File = fl Proc.Start() Else Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information) End If |
-- 作者:有点蓝 -- 发布时间:2019/8/6 8:45:00 -- 新增后,后台数据库有没有记录? 预览和打开又是怎么做的?
|