Foxtable(狐表)用户栏目专家坐堂 → 文件附件里面文件类型有可能是图片也有可能是文档 怎么实现当是图片的时候就用PictureBox打开 反之就用WebBrowser打开


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

主题:文件附件里面文件类型有可能是图片也有可能是文档 怎么实现当是图片的时候就用PictureBox打开 反之就用WebBrowser打开

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
文件附件里面文件类型有可能是图片也有可能是文档 怎么实现当是图片的时候就用PictureBox打开 反之就用WebBrowser打开  发帖心情 Post By:2020/5/6 17:11:00 [只看该作者]

文件附件里面文件类型有可能是图片也有可能是文档  怎么实现当是图片的时候就用PictureBox打开  反之就用WebBrowser打开


当前代码如下:(能够实现PictureBox WebBrowser同时打开图片 WebBrowser打开非图片类的文件  
Dim pc2 As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim web1 As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
web1.Address = Nothing
If Tables("收文列表.文件附件").Current Is Nothing Then
    Return
End If

Dim dr As DataRow = Tables("收文列表.文件附件").Current.DataRow
Dim fl As String =  ProjectPath &  dr("文件名")
If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
    '则直接使用本地文件
    web1.Address = fl
    pc2.Image= GetImage(fl)     这个部分怎么写文件类型判断呢?
Else '否则从数据库提取文件
    If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Return
    End If
End If
'Dim Proc As New Process '打开文件
'Proc.File = fl
'Proc.Start()




 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

判断扩展名,比如:
if fl.EndsWith(".jpg") orelse fl.EndsWith(".png") then
msgbox("图片")
else
msgbox("不是图片")
end if


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
  发帖心情 Post By:2020/5/6 17:54:00 [只看该作者]

Dim pc2 As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim kp As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim web1 As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
web1.Address = Nothing
If Tables("收文列表.文件附件").Current Is Nothing Then
    Return
End If

Dim dr As DataRow = Tables("收文列表.文件附件").Current.DataRow
Dim fl As String =  ProjectPath &  dr("文件名")
If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
    '则直接使用本地文件
    If fl.EndsWith(".jpg") OrElse fl.EndsWith(".png") Then
        pc2.Image= GetImage(fl)
        kp.SelectedIndex=0
    Else
        web1.Address = fl   如果打开的是text文本文件的话,文件中的中文会是乱码  有没有办法修正呢?
        kp.SelectedIndex=1
    End If
    
Else '否则从数据库提取文件
    If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Return
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/7 8:23:00 [只看该作者]

text文本文件另存为,保存对话框下方选择不同的编码试试

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)text文本文件另存为,保存对话框下方...  发帖心情 Post By:2020/5/7 8:52:00 [只看该作者]

默认都是保存的utf-8


如果文件是doc或者xls时候,怎么在WebBrowser打开时  不显示office工具的那些按钮呢?
[此贴子已经被作者于2020/5/7 9:16:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/7 9:31:00 [只看该作者]

控制不了

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)控制不了  发帖心情 Post By:2020/5/7 9:40:00 [只看该作者]


好的 谢谢   

再请教一下   为什么我代码如下后,需要点两次运行  才能显示图片呢?

Dim pc2 As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim kp As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim web1 As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
web1.Address = Nothing


If FileSys.DirectoryExists(ProjectPath & "预览文件") Then '如果目录存在
    
    If Tables("收文列表.文件附件").Current Is Nothing Then
        Return
    End If
    
    Dim dr As DataRow = Tables("收文列表.文件附件").Current.DataRow
    
    Dim fl As String =  ProjectPath & "预览文件\" &  dr("文件名")
    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=0
        Else  If fl.EndsWith(".txt") OrElse fl.EndsWith(".zip") OrElse fl.EndsWith(".rar") OrElse fl.EndsWith(".pdf") OrElse fl.EndsWith(".exe") Then
            Dim Proc As New Process '打开文件
            Proc.File = fl
            Proc.Start()
        Else
            web1.Address = fl
            kp.SelectedIndex=1
        End If
        
    Else '否则从数据库提取文件
        If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
            Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Return
        End If
    End If
End If
[此贴子已经被作者于2020/5/7 9:54:06编辑过]

 回到顶部