Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: 涉及图片传输时base64解码问题 #2166

Open
4 tasks done
0xiaoshenap opened this issue May 25, 2023 · 4 comments
Open
4 tasks done

[Bug]: 涉及图片传输时base64解码问题 #2166

0xiaoshenap opened this issue May 25, 2023 · 4 comments
Labels
bug? The issue author think this is a bug

Comments

@0xiaoshenap
Copy link

请确保您已阅读以上注意事项,并勾选下方的确认框。

  • 我已经仔细阅读上述教程和 "提问前需知"
  • 我已经使用 dev分支版本 测试过,问题依旧存在。
  • 我已经在 Issue Tracker 中找过我要提出的问题,没有找到相同问题的ISSUE。
  • 我已知晓并同意,此处仅用于汇报程序中存在的问题。若这个 Issue 是关于其他非程序本身问题,则我的 Issue 可能会被无条件自动关闭或/并锁定。(这些问题应当在 Discussion 板块提出。)

go-cqhttp 版本

1.0.1

运行环境

Windows (64)

运行架构

None

连接方式

HTTP

使用协议

1 | Android Phone

重现步骤

                    array_push($msg,
                        array(
                            "type" => "node",
                            "data" => array(
                                "name" => "",
                                "uin" => "*",
                                "content" => "[CQ:image,file={base64:https://iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAAKElEQVQ4EWPk5+RmIBcwkasRpG9UM4mhNxpgowFGMARGEwnBIEJVAAAdBgBNAZf+QAAAAABJRU5ErkJggg==}]"
                            )
                        ),
                    );

这里使用php编写对接api,base64图片使用文档示例图片

期望的结果是什么?

成功发送图片

实际的结果是什么?

[CQ:image,file=base64:https://iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAAKElEQVQ4EWPk5RmIBcwkasRpG9UM4mhNxpgowFGMARGEwnBIEJVAAAdBgBNAZf QAAAAABJRU5ErkJggg==] 时出现错误: illegal base64 data at input byte 29 将原样发送.

简单的复现代码/链接(可选)

No response

日志记录(可选)

No response

补充说明(可选)

由于使用http对接api,途中图片应该会被转码为url编码的base64
标准编码加密: base64.StdEncoding.EncodeToString(data)

标准编码解密: base64.StdEncoding.DecodeString(str)

url编码加密: base64.UrlEncoding.EncodeToString(data)

url编码解密: base64.UrlEncoding.DecodeString(str)

@0xiaoshenap 0xiaoshenap added the bug? The issue author think this is a bug label May 25, 2023
@DanielToyama
Copy link

这个base64解不出东西来啊,你用一个解码工具就知道了

@0xiaoshenap
Copy link
Author

我是在开发中遇到的这个bug,示例用的base64虽然解不出来东西但是是符合base64规则的,不应该在解码中报错

@icarus-ai
Copy link

这个base64解不出东西来啊,你用一个解码工具就知道了

go 1.20.5
使用 base64.StdEncoding.DecodeString 解码成功 是一张20x21全黑图(大小97B)
传输过程转义的问题吧?
AAAAKElEQVQ4EWPk5RmIBcw 丢了个+号,在WPk5hl后面
AZf+QAAA 的+变成空格?

@0xiaoshenap
Copy link
Author

这个base64解不出东西来啊,你用一个解码工具就知道了

go 1.20.5 使用 base64.StdEncoding.DecodeString 解码成功 是一张20x21全黑图(大小97B) 传输过程转义的问题吧? AAAAKElEQVQ4EWPk5RmIBcw 丢了个+号,在WPk5hl后面 AZf+QAAA 的+变成空格?

是的,我就是认为是传输过程中转义的问题,所以我提供了支持url base64的解码方式

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug? The issue author think this is a bug
Projects
None yet
Development

No branches or pull requests

3 participants