以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何在移动端显示二进制列的图片  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131420)

--  作者:无限5180
--  发布时间:2019/2/25 20:25:00
--  [求助]如何在移动端显示二进制列的图片
老师,如何在移动端显示后台二进制图片
Select Case e.Path
    Case "test.htm"
        Dim wb As New weui
        wb.AddForm("","form1","test.htm")
        With wb.AddInputGroup("form1","ipg1",
"
文件上传"\'文件上传
            .AddUploader("up1","")
        End With
        With wb.AddInputGroup("form1","ipg22",
"
文件上传"\'带图片浏览的文件上传
            With .AddUploader("up2",
"
图片",True\'True表示允许一次上传多个文件
                .AddImage("./images/001.jpg")
                .AddImage("./images/002.jpg")
                .AddImage("./images/003.jpg")

            End With
        End With
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1"
"
确定""submit")
        End With
        
e.WriteString(wb.Build\'生成网页
End Select

老师,红色字体显示图片的方法,能不能直接从后台调取二进制列图片?


--  作者:有点蓝
--  发布时间:2019/2/25 21:51:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=131392&skin=0
--  作者:无限5180
--  发布时间:2019/2/25 23:04:00
--  
谢谢老师! 移动端现在能成功显示了
但如果二进制列没有图片就会报错,下面的代码中如何进行判断?请老师帮忙看看
        Dim cmd As new SQLCommand
        cmd.ConnectionName = "T"
        cmd.CommandText="select top 1 第八列 from DDDDD " \'这里第八列是二进制列
        Dim dt As DataTable = cmd.ExecuteReader
        Dim src As String
        If dt.DataRows.Count >0 Then
            Dim imagebytes As Byte() = dt.DataRows(0)("第八列")
            src = Convert.ToBase64String(imagebytes )
        End If
        With wb.AddArticle("","ar1")
            .UseGallery = True \'启用Gallery,必须放在第一行
            .AddImage("data:image/jpeg;base64," & src)
        End With
报错如下:
.NET Framework 版本:2.0.50727.9035
Foxtable 版本:2018.10.9.1
错误所在事件:自定义函数显示图片
详细错误信息:
调用的目标发生了异常。
无法将类型为“System.Int32”的对象强制转换为类型“System.Byte[]”。

--  作者:有点蓝
--  发布时间:2019/2/25 23:22:00
--  
 Dim cmd As new SQLCommand
        cmd.ConnectionName = "T"
        cmd.CommandText="select top 1 第八列 from DDDDD" \'这里第八列是二进制列
        Dim dt As DataTable = cmd.ExecuteReader
        Dim src As String
        If dt.DataRows.Count >0 andalso dt.DataRows(0).isnull("第八列") = false Then
            Dim imagebytes As Byte() = dt.DataRows(0)("第八列")
            src = Convert.ToBase64String(imagebytes )
        With wb.AddArticle("","ar1")
            .UseGallery = True \'启用Gallery,必须放在第一行
            .AddImage("data:image/jpeg;base64," & src)
        End With
        End If