You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js V13 发送.sqlite文件至私信异常如何解决

问题原因

之所以图片文件可正常传输,但sqlite格式文件发送后无法使用,是因为图片Buffer自带可被Discord识别的MIME类型信息,平台能自动补全正确后缀名;而sqlite类数据库文件没有通用的可自动识别的MIME标识,你当前的代码仅传递了文件Buffer,没有手动指定带正确后缀的文件名,Discord就会生成格式错误的无效文件。

修复后的实现代码

不需要手动读取文件Buffer,Discord.js v13支持直接传入本地文件路径,只需补充name参数指定带.sqlite后缀的文件名即可:

const { owner } = require('../config/config.json')
const fs = require('fs');
const path = require('path')
const moment = require('moment')
const today = moment().format('YYYY-MM-DD-MM-SS')

module.exports = {
    name: "data",
    async execute(interaction) {
        if (interaction.member.id !== owner) return
        try {
            await interaction.member.send({
                content: `**${today} database**\n⁣`,
                files: [
                    {
                        attachment: path.join('./data.sqlite'),
                        // 自定义发送后的文件名,必须带.sqlite后缀
                        name: `${today}-data.sqlite`
                    }
                ]
            })
        } catch (err) {
            console.log(err)
            await interaction.member.send(`err!\n\n**${err}**`)
        }
    }
}
适配json.sqlite格式的调整方法

如果需要发送后缀为.json.sqlite的数据库文件,仅需修改name参数值即可,其他逻辑无需改动:

name: `${today}-data.json.sqlite`
注意事项
  • 发送前确保sqlite文件没有被其他进程占用写入,避免读取到损坏的数据库文件
  • Discord普通用户私信上传文件限制为8MB,Nitro用户根据等级分别为50MB/500MB,超出体积的数据库建议先压缩为zip包再发送

内容的提问来源于stack exchange,提问作者ON MO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:06:01