找回密码
 立即注册

QQ登录

只需一步,快速开始

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


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

16 个回复

正序浏览
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-1-22 15:10:19
17#
回复 使用道具 举报
起航
高级会员   /  发表于:2024-1-22 14:32:20
16#
赛龙周 发表于 2024-1-21 11:04
今天抽空测试了用活字格内置数据数据库保存base64格式的图片文件,结论是可以的,如下图:

非常感谢!!!
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-1-22 09:37:06
15#
感谢大家对活字格的支持
如果您的问题已解决,请及时更新帖子的状态为“已处理”,并设置最佳答案给有帮助到你的回复;
如果您的问题还未解决,欢迎跟帖补充;
如果您有新的问题,也欢迎创建新的求助帖呦。
回复 使用道具 举报
杜清松-808916
注册会员   /  发表于:2024-1-20 08:09:21
13#
给你一个思路哈。
1.图片文件存在cos对象存储中(云存储)
2.建立数据库存储唯一文件名和文件云存储的地址
3.本地获取数据库图片云地址,进行转码Base64
4.本地应用读取Base64展现

评分

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

查看全部评分

回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-1-19 17:43:22
12#
您说的打开太慢是指在设计器中打开这个表太慢吗,可能会有这种情况,因为之前存路径的话,
一个图片基本也就100个字符左右,转成base64的话可能就有上万个字节了,一般文件越大打开也是越慢的~
回复 使用道具 举报
起航
高级会员   /  发表于:2024-1-19 15:43:40
11#
Joe.xu 发表于 2024-1-19 15:24
我看目前的base64的命令都是在服务端运行的,所以需要先把图片上传,服务端需要拿到这个上传之后图片路径 ...

刚才用路径试了一下,打开数据表发现太慢了,怎么会这样呢
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-1-19 15:24:55
10#
起航 发表于 2024-1-19 11:39
谢谢回复,不过这个方法有点复杂,9.0版本有base64插件,请问这个插件怎么用?这个插件可以直接把图片转 ...

我看目前的base64的命令都是在服务端运行的,所以需要先把图片上传,服务端需要拿到这个上传之后图片路径再进行加密

评分

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

查看全部评分

回复 使用道具 举报
赛龙周
金牌服务用户   /  发表于: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
回复 使用道具 举报
gczxxu
银牌会员   /  发表于:2024-1-19 12:58:56
8#
起航 发表于 2024-1-19 09:44
这样可以用其它语言做的程序也能调取出图片来

你可以做服务端命令实现webapi让别的应用调用,这样更加合理……
回复 使用道具 举报
gczxxu
银牌会员   /  发表于:2024-1-19 12:57:49
7#
不建议这样存图片………
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部