Foxtable(狐表)用户栏目专家坐堂 → 二进制列 怎么实现web上传图片呢?


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

主题:二进制列 怎么实现web上传图片呢?

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/19 11:36:00 [显示全部帖子]

SQLInsertFile这个用法不支持临时表。需要使用sql更新,比如

Dim cmd As new SQLCommand
cmd.ConnectionName = "test"
cmd.CommandText = "Insert Into test (图片) Values(?)"
Dim ImageByte() As Byte = System.IO.File.ReadAllBytes("D:\test.JPG") '读取文件流,并将读到的二进制数据放入数组ImageByte中,
cmd.Parameters.Add("@图片", ImageByte)
cmd.ExecuteNonQuery
[此贴子已经被作者于2020/5/19 11:36:57编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/19 15:33:00 [显示全部帖子]

使用cmd.ExecuteReader获得的表就是临时表

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/19 15:36:00 [显示全部帖子]

Dim dr As Row = Tables("web上传图片").AddNew()
dr.save 必须先保存,才能插入二进制数据

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/19 15:39:00 [显示全部帖子]

在web服务端千万不要使用Tables("xxx").Current这种用法,因为多人使用的使用,A新增了一行,然后B也新增了一行,A再去取Current,有可能就是B新增的行,而不是A新增的行

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/19 16:40:00 [显示全部帖子]

既然都有了一个dr,又何必多此一举?下面这段代码全部去掉即可

        Dim dr1 As DataRow = Tables("web上传图片").Current.DataRow        ‘’这个部分老师有什么好的建议么?根据老师的建议该怎么改比较合适呢?
        If dr1.RowState = DataRowState.Added Then '如果是新增行,必须先保存才能插入文件
            dr1.Save()
        End If

我只是提供一个例子,不代表可以直接抄,Insert Into本来就是插入的用法,如果要更新数据,学一下sql:http://www.foxtable.com/webhelp/topics/0690.htm

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/19 17:30:00 [显示全部帖子]

                       cmd.Com mandText = "up date {web上传图片} set 图片= ? where 姓名=?"
                        Dim ImageByte() As Byte = System.IO.File.ReadAllBytes(wj) '读取文件流,并将读到的二进制数据放入数组ImageByte中,
                        cmd.Parameters.Add("@图片", ImageByte)
                        cmd.Parameters.Add("@姓名", dr("姓名"))
                        cmd.ExecuteNonQuery
                        DataTables ("web上传图片").Load()

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/19 20:12:00 [显示全部帖子]

参考:http://www.foxtable.com/mobilehelp/topics/0106.htm,仔细看完帮助的说明

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/20 10:04:00 [显示全部帖子]

这个业务逻辑本身就有问题,前端一次只能填写一个姓名,也就是对应表格的一行记录,而一行只有一个二进制列,任何保存多个图片?

还是说您想选择几个图片同一个姓名就新增几行记录?

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/20 10:24:00 [显示全部帖子]

另外建一个附件表

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/20 13:32:00 [显示全部帖子]

        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1", "确定", "submit").Attribute= ""
        End With

改为
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1", "确定", "button").Attribute= ""
        End With

 回到顶部
总数 12 1 2 下一页