使用Aurelia将图像上载到Express/Multer Api

使用Aurelia将图像上载到Express/Multer Api,express,aurelia,multer,Express,Aurelia,Multer,实现图像/文件上传到我的aurelia应用程序。expressapi工作正常,使用Multer插件成功接收文件和图像,并通过Postman测试 现在我正试图弄清楚,如何将文件附加到aureliahttp/Fetch调用。不知何故,请求是向Api发出的,但图像似乎没有附加。有什么想法吗 一些问题: 将文件以任何方式附加到请求的主体密钥是正确的,还是需要将文件分开 创建FormData并以任何方式将文件附加到Obejct是否正确/必要 文件/映像存储在HTTP请求的哪个部分,如何在服务器端识别它们(

实现图像/文件上传到我的aurelia应用程序。expressapi工作正常,使用Multer插件成功接收文件和图像,并通过Postman测试

现在我正试图弄清楚,如何将文件附加到aureliahttp/Fetch调用。不知何故,请求是向Api发出的,但图像似乎没有附加。有什么想法吗

一些问题:

  • 将文件以任何方式附加到请求的主体密钥是正确的,还是需要将文件分开
  • 创建FormData并以任何方式将文件附加到Obejct是否正确/必要
  • 文件/映像存储在HTTP请求的哪个部分,如何在服务器端识别它们(以防我的中间件无法正常工作)
  • 这是我目前的做法:

    奥雷利亚服务:
    uploadImagesApi(图像){
    设formData=new formData()
    formData.images=图像;
    返回http.fetch(url+“/”{
    方法:'放',
    正文:formData,//{
    返回响应
    }).catch(错误=>{
    日志(“某些故障…”);
    抛出错误。内容;
    })
    }
    
    输入元素
    
    上传
    
    将formData.images=images更改为formData.images=images.item(0)

    可能还需要在formData中使用“file”键而不是“images”:formData.file=images.item(o)

    uploadImagesApi(images){
    设formData=new formData()
    for(设i=0;i{
    返回响应
    })
    .catch(错误=>{
    日志(“某些故障…”);
    抛出错误。内容;
    })
    }
    

    确保您的url变量已定义,看起来像一个全局变量。

    转到firebug,查看错误日志和http日志。可能完全是API请求被服务器或浏览器拒绝了?没有错误…但希望知道如何将文件附加到Aurelia FetchRequest…尝试了这两种方法,但都没有帮助。@Seltsam,我找不到一种解决方案来修复文件上载到服务器的问题,并且已经找到了你完成了吗?@Seltsam hi,formData.append对我不起作用,它附加了空的formData,你想知道,上面的东西足以将文件上传到服务器吗?我的问题是
    uploadImagesApi(images) {
        let formData = new FormData()
        formData.images = images;
        return http.fetch(url+"/", {
          method: 'put',
          body: formData, // <-- Is this correct?
        }).then(response => {
          return response
        }).catch(error => {
          console.log("Some Failure...");
          throw error.content;
        })
    }
    
    <input class="input" type="file" files.bind="images" multiple>
    <a click.delegate="uploadImagesApi(images)">Upload</a>
    
    uploadImagesApi(images) {
            let formData = new FormData()
    
            for (let i = 0; i < images.length; i++) {
                formData.append('images', images[i]);
            }
    
            return http.fetch(url + "/", {
                    method: 'put',
                    body: formData,
                })
                .then(response => {
                    return response
                })
                .catch(error => {
                    console.log("Some Failure...");
                    throw error.content;
                })
        }