找回密码
 立即注册

QQ登录

只需一步,快速开始

起航

高级会员

84

主题

399

帖子

1411

积分

高级会员

积分
1411
起航
高级会员   /  发表于:2024-1-19 08:13  /   查看:3472  /  回复:42
100金币
请教万能的格友们,用什么方法能将图片文件以二进制方式直接存储在SQL数据表中?用base64插件转成字符串怎么也不行,感觉还是存了个文件名,还是用的不对?


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

今天抽空测试了用活字格内置数据数据库保存base64格式的图片文件,结论是可以的,如下图: 同时有几个坑需要注意 1、直接用插件把文件转成base64是不带前缀的,预览需要将前缀加上; 2、表格中直接加载base64的字符会比较慢,需要用个图片组件,速度丝滑多了。 demo:

42 个回复

倒序浏览
最佳答案
最佳答案
赛龙周
银牌会员   /  发表于:2024-1-19 08:13:57
来自 14#
今天抽空测试了用活字格内置数据数据库保存base64格式的图片文件,结论是可以的,如下图:


同时有几个坑需要注意
1、直接用插件把文件转成base64是不带前缀的,预览需要将前缀加上;
2、表格中直接加载base64的字符会比较慢,需要用个图片组件,速度丝滑多了。
demo:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 2金币 +66 满意度 +5 收起 理由
起航 + 5
Joe.xu + 66 很给力!

查看全部评分

回复 使用道具 举报
ShiG
高级会员   /  发表于:2024-1-19 09:30:12
2#
这样存放到数据库 会对数据库造成压力吧  具体你想干嘛方便说一下吗
回复 使用道具 举报
起航
高级会员   /  发表于:2024-1-19 09:44:07
3#
ShiG 发表于 2024-1-19 09:30
这样存放到数据库 会对数据库造成压力吧  具体你想干嘛方便说一下吗

这样可以用其它语言做的程序也能调取出图片来
回复 使用道具 举报
起航
高级会员   /  发表于:2024-1-19 09:46:01
4#
ShiG 发表于 2024-1-19 09:30
这样存放到数据库 会对数据库造成压力吧  具体你想干嘛方便说一下吗

勤哲系统里的附件都是直接存储在数据表中,为什么活字格不能
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-1-19 10:22:38
5#
楼主的这个字段是图片类型吗,这个帖子您可以看一下

7.0.104 怎样实现复制图片地址保存为base64
https://gcdn.grapecity.com.cn/showtopic-145223-1-1.html
(出处: 葡萄城开发者社区)

没有解决的话,可以上传一个的demo,
我们详细调试一下分析原因,按原理说是可以存base64的

评分

参与人数 1满意度 +5 收起 理由
起航 + 5

查看全部评分

回复 使用道具 举报
起航
高级会员   /  发表于:2024-1-19 11:39:48
6#
Joe.xu 发表于 2024-1-19 10:22
楼主的这个字段是图片类型吗,这个帖子您可以看一下

7.0.104 怎样实现复制图片地址保存为base64

谢谢回复,不过这个方法有点复杂,9.0版本有base64插件,请问这个插件怎么用?这个插件可以直接把图片转成字任串吗?或者用它只是加密了一个路径文件名
回复 使用道具 举报
gczxxu
银牌会员   /  发表于:2024-1-19 12:57:49
7#
不建议这样存图片………
回复 使用道具 举报
gczxxu
银牌会员   /  发表于:2024-1-19 12:58:56
8#
起航 发表于 2024-1-19 09:44
这样可以用其它语言做的程序也能调取出图片来

你可以做服务端命令实现webapi让别的应用调用,这样更加合理……
回复 使用道具 举报
赛龙周
银牌会员   /  发表于:2024-1-19 14:11:17
9#
如果你使用的是sqlserver2016以上版本可以直接使用以下语句:
CREATE TABLE myTable (
    FileName NVARCHAR(60),
    FileType NVARCHAR(60),
    Document VARBINARY(MAX)
);
GO

INSERT INTO myTable (
    FileName,
    FileType,
    Document
)
SELECT 'Text1.txt' AS FileName,
    '.txt' AS FileType,
    *
FROM OPENROWSET(
    BULK N'C:\Text1.txt',
    SINGLE_BLOB
) AS Document;
GO
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部