收藏
回答

express中有上传文件的api, 云托管callContainer的方式如何上传文件?

我有一个express服务,其中有个api是用于上传文件,代码见如下。

export async function upload(req: express.Request, res: express.Response) {
    if (!req.files || !req.files.file) {
        res.status(400).send('未上传文件');
        return;
    }


    try {
        //@ts-ignore
        const uploadedFile = req.files.file;
        //@ts-ignore
        const fileBuffer = uploadedFile.data; // 获取文件的 Buffer
        //@ts-ignore
        const fileName = uploadedFile.name;


        const url = await uploadBuffer(fileBuffer, fileName)
        res.status(200).json({
            url
        })
    } catch (ex) {
        //@ts-ignore
         res.status(500).json({ msg: ex.msg })
    }
}


在微信小程序中通过如下代码上传

export async function uploadFile(filePath: string): Promise<string> {
    const token = wx.getStorageSync("token")
    return new Promise((resolve, reject) => {
        wx.uploadFile({
            url: env.baseUrl + "/file/upload",
            filePath: filePath,
            header: {
                "Authorization": `Bearer ${token}`
            },
            name: 'file',
            success(res) {
                if (res.statusCode == 200) {
                    const json = JSON.parse(res.data) as { url: string }
                    resolve(json.url)
                    return;
                }


                reject(res.errMsg)
            },
            fail(e) {
                reject(e.errMsg)
            }
        })
    })
}


现在因为一些原因我需要通过微信云托管去提供后端服务,我现在的问题是,我该如何通过callContainer或者其他的方式去上传文件?我不想上传到微信云的文件存储系统,我想通过调用我的后端api去完成文件的上传。

谢谢。

回答关注问题邀请回答
收藏

2 个回答

  • Alfred Huang
    Alfred Huang
    星期一 10:30

    callContainer 有请求大小限制,不建议用于上传文件

    可以使用云托管的 https 链路用于上传文件,走的标准 https 协议。

    星期一 10:30
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    05-24
    有用
登录 后发表内容
问题标签