Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从图像url创建multer文件_Node.js_Typescript_Express_Blob_Multer - Fatal编程技术网

Node.js 如何从图像url创建multer文件

Node.js 如何从图像url创建multer文件,node.js,typescript,express,blob,multer,Node.js,Typescript,Express,Blob,Multer,我需要首先从公共url下载图像,将下载的图像文件转换为multer文件,这样我就可以调用现有的api,然后上传multer文件。我尝试过axiosresponseType:“blob”和responseType:“arraybuffer”,但在将这两个响应转换为Express.Multer.File时遇到问题。我需要它是一个multer文件,因为在上传到s3存储之前,我们也在从multer文件缓冲区生成散列。使用typescript,我想到了如下内容: let imageResponse = a

我需要首先从公共url下载图像,将下载的图像文件转换为multer文件,这样我就可以调用现有的api,然后上传multer文件。我尝试过axios
responseType:“blob”
responseType:“arraybuffer”
,但在将这两个响应转换为
Express.Multer.File
时遇到问题。我需要它是一个multer文件,因为在上传到s3存储之前,我们也在从multer文件缓冲区生成散列。使用typescript,我想到了如下内容:

let imageResponse = await axios.get(imageURL, { responseType: "arraybuffer" });
let file: Express.Multer.File = {
             buffer: Buffer.from(imageResponse.data, "binary"),
             fieldname: "fieldname",
             originalname: "imageName.jpg",
             encoding: "binary",
             mimetype: "image/jpg",
             destination: __dirname,
           }

我知道这看起来非常错误,但我不知道如何解决这个问题。

在不转换为multer文件的情况下解决了这个问题,而只是创建一个具有缓冲区属性的类似文件的对象。

在这种情况下,您不需要使用multer,下载文件并直接保存到您喜欢的位置。这里的示例代码我相信我可以做到这一点,但如果我在上传时没有首先转换为multer文件,那么我就无法从multer file.buffer生成我们需要的哈希