以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在WeUI实例中,怎么打开并查看二进制列已经上传的图片  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=150088)

--  作者:李孝春
--  发布时间:2020/5/20 13:59:00
--  在WeUI实例中,怎么打开并查看二进制列已经上传的图片
在WeUI实例中,怎么打开并查看二进制列已经上传的图片


web上传图片附件

 

姓名() ----> 字符型(255)

图片类别() ----> 字符型(255)

图片名称() ----> 字符型(255)

时间戳() ----> 字符型(255) 

图片()------->二进制列


代码如下:

Dim xingming As String  = e.PostValues("姓名")

    Dim dr As DataRow = DataTables("web上传图片附件").SQLFind("姓名=xingming")

    Dim Multi As List(of String) = dr.Lines("图片")



Select Case e.Path
    Case "test.htm"
        Dim wb As New weui
        wb.AddForm("","form1","test.htm")
        With wb.AddInputGroup("form1","ipg1",
"
客户资料")
            .AddInput(
"
姓名","姓名","text")
            With .AddUploader("up1","",True)
                .AllowAdd = False
\'
关闭文件上传功能
               
For Each file As String In Multi

                    msgbox(file)

                    .AddImage("./images/" & file )

                Next

            End With
        End With
       
e.WriteString(wb.Build) \'生成网页
End
Select


怎么实现根据姓名输入的值,查找web上传图片附件里面的符合条件的所有图片,并全部显示出来呢?


--  作者:有点蓝
--  发布时间:2020/5/20 14:32:00
--  
参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=101844
--  作者:李孝春
--  发布时间:2020/5/20 16:50:00
--  回复:(有点蓝)参考:http://www.foxtable.com/bbs/...
老师  麻烦指导一下  谢谢!
参照帮助学习如下:
Dim xingming1 As String  = e.PostValues("姓名")
……
Case "test.htm"
    
    wb.AddForm("","form1","getVimg.htm")
    With wb.AddInputGroup("form1","ipg1","增加图片")
        .AddInput("姓名","姓名","Text")
    End With
    
    
    With wb.AddButtonGroup("form1","btg1",True)  \'垂直排列
        .Add("btn1", "查看图片")
    End With
    e.WriteString(wb.Build) \'生成网页
Case "getVimg.htm"
    
    wb.AddForm("","form1","getVimg.htm")
    Dim cmd11 As New SQ LCommand
    cmd11.Connec tion Name = "智慧党建"
    cmd11.Com mand Text="sele ct  图片 from web上传图片附件 where 姓名= \'" & xingming1 & "\' " \'这里第八列是二进制列
    Dim dt As DataTable = cmd11.Execu teReader
    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("./images/004.jpg")
        .AddImage("data:image/jpeg;base64," & src)
    End With
    e.WriteString(wb.Build) \'生成网页
End Select

上述代码基本上是可以实现了查找姓名对应的图片单张显示,是否可以帮忙改进一下   显示多张图片呢?



参照论坛其它学习
更改如下后:无法正常使用
Case "getVimg.htm"
    wb.AddForm("","form1","getVimg.htm")
    Dim cmd11 As New SQ LCommand
    cmd11.Connecti
    cmd11.Com man dText="se lect  图片 fro m web上传图片附件 whe re 姓名= \'" & xingming1 & "\' " \'这里第八列是二进制列
    Dim dt As DataTable = cm d11.Execu teReader
    Dim dr As DataRow = dt.DataRows(0)
    Dim Multi As List(of String) = dr.Lines("图片")
    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.AddInputGroup("form1","ipg1","客户资料")
        .AddInput("姓名","姓名","text").value = "舒淇"
        .AddInput("地点","地点","text").Value = "蒙古草原"
        .AddInput("日期","日期","date").value = #10/12/2012#
        With .AddUploader("up1","",True)
            .AllowAdd = False \'关闭文件上传功能
            For Each file As String In Multi
                msgbox(file)
                .AddImage("data:image/jpeg;base64," & src)
            Next
        End With
    End With
    e.WriteString(wb.Build) \'生成网页
End Select
[此贴子已经被作者于2020/5/20 16:51:01编辑过]

--  作者:有点蓝
--  发布时间:2020/5/20 16:57:00
--  
Case "getVimg.htm"
    
    wb.AddForm("","form1","getVimg.htm")
    Dim cmd11 As New SQ LCommand
    cmd11.Connec tion Name = "智慧党建"
    cmd11.Com mand Text="sele ct  图片 from web上传图片附件 where 姓名= \'" & xingming1 & "\' " \'这里第八列是二进制列
    Dim dt As DataTable = cmd11.Execu teReader
    Dim src As String
    With wb.AddArticle("","ar1")
        .UseGallery = True \'启用Gallery,必须放在第一行
        \' .AddImage("./images/004.jpg")
for each dr as datarow in dt.DataRows
Dim imagebytes As Byte() = dr("图片")
        src = Convert.ToBase64String(imagebytes )
        .AddImage("data:image/jpeg;base64," & src)
next
    End With
    e.WriteString(wb.Build) \'生成网页
End Select

--  作者:李孝春
--  发布时间:2020/5/20 19:10:00
--  回复:(有点蓝)Case "getVimg.htm"   &nb...
Case "getVimg.htm"
    wb.AddForm("","form1","getVimg.htm")
    
    Dim cmd11 As New SQ LCommand
    cmd11.Conn ecti
    cmd11.CommandText="sele ct  图片 from web上传图片附件 where 姓名= \'" & xingming1 & "\' " \'这里第八列是二进制列
    Dim dt As DataTable = cmd11.ExecuteReader
    Dim src As String
    With wb.AddInputGroup("form1","ipg111","客户资料")
        .AddInput("姓名","姓名","text").value = xingming
    End With
    With wb.AddInputGroup("form1","ipg1111","图片信息")
        With .AddUploader("up111","",True)
            .AllowAdd = False \'关闭文件上传功能
            With wb.AddArticle("","ar1")
                .UseGallery = True \'启用Gallery,必须放在第一行
                For Each dr As DataRow In dt.DataRows
                    Dim imagebytes As Byte() = dr("图片")
                    src = Convert.ToBase64String(imagebytes )
                    .AddImage("data:image/jpeg;base64," & src)
                Next              
            End With           
        End With  
    End With
    With wb.AddInputGroup("form1","ipg1111111","")
        With wb.AddButtonGroup("form1","btg1",True)  \'垂直排列
            .Add("btn5", "按钮", "", "http://www.foxtable.com")
        End With
    End With
    e.WriteString(wb.Build) \'生成网页
    

初步可以实现根据姓名显示多个图片文件
怎么把图片显示在  图片信息  框框里呢?

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2020/5/21 9:04:00
--  
With wb.AddInputGroup("form1","ipg1111","图片信息")
        With .AddUploader("up111","",True)
            .AllowAdd = False \'关闭文件上传功能
                For Each dr As DataRow In dt.DataRows
                    Dim imagebytes As Byte() = dr("图片")
                    src = Convert.ToBase64String(imagebytes )
                    .AddImage("data:image/jpeg;base64," & src)
                Next                    
        End With  
    End With

--  作者:李孝春
--  发布时间:2020/5/21 9:29:00
--  回复:(有点蓝)With wb.AddInputGroup("form1","ipg...
老师  去掉了   红色部分
 With wb.AddInputGroup("form1","ipg1111","图片信息")
        With .AddUploader("up111","",True)
            .AllowAdd = False \'关闭文件上传功能
            With wb.AddArticle("","ar1")
                .UseGallery = True \'启用Gallery,必须放在第一行
                For Each dr As DataRow In dt.DataRows
                    Dim imagebytes As Byte() = dr("图片")
                    src = Convert.ToBase64String(imagebytes )
                    .AddImage("data:image/jpeg;base64," & src)
                Next              
            End With           
        End With  
    End With

之后,如果是单张图片可以正常显示,多张图片就提示错误如下:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:项目,HttpRequest
详细错误信息:
已添加了具有相同键的项。



不去掉的时候,如5楼,只是显示位置不对  但是多张图片可以全部显示出来
[此贴子已经被作者于2020/5/21 9:43:25编辑过]

--  作者:有点蓝
--  发布时间:2020/5/21 10:02:00
--  
我测试没有问题。检查其他代码,调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm
--  作者:李孝春
--  发布时间:2020/5/21 10:15:00
--  回复:(有点蓝)我测试没有问题。检查其他代码,调试...
老师:

以下内容是专门发给有点蓝浏览



Case "getVimg.htm"
    wb.AddForm("","form1","getVimg.htm")
    
    Dim cmd11 As New S Q L Command
    cmd11.Co nn ectio nNam e = "智慧党建"
    cmd11.CommandText="sel ect  图片 from web上传图片附件 where 姓名= \'" & xingming1 & "\' " \'这里第八列是二进制列
    Dim dt As DataTable = cmd11.ExecuteReader
    Dim src As String
    With wb.AddInputGroup("form1","ipg11","客户资料")
        .AddInput("姓名","姓名","text").value = xingming
    End With

    With wb.AddInputGroup("form1","ipg22","图片信息")
MessageBox.Show(1)
        With .AddUploader("up2","",True)
MessageBox.Show(2)
            .AllowAdd = False \'关闭文件上传功能
MessageBox.Show(3)
            For Each dr As DataRow In dt.DataRows
MessageBox.Show(4)
                Dim imagebytes As Byte() = dr("图片")
MessageBox.Show(5)
                src = Convert.ToBase64String(imagebytes )
MessageBox.Show(6)
                .AddImage("data:image/jpeg;base64," & src)
MessageBox.Show(7)
            Next
MessageBox.Show(8)
        End With
    End With
MessageBox.Show(9)
    With wb.AddInputGroup("form1","ipg33","")
        With wb.AddButtonGroup("form1","btg1",True)  \'垂直排列
            .Add("btn5", "按钮", "", "test.htm")
        End With
    End With
    e.WriteString(wb.Build) \'生成网页

经过测试   
依次提示1234567456然后报错。
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:项目,HttpRequest
详细错误信息:
已添加了具有相同键的项。

--  作者:有点蓝
--  发布时间:2020/5/21 10:53:00
--  
我测试没有问题,关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看