仅通过相对路径/assets/image/img.png将文件上传到服务器-通过JavaScript

时间:2018-07-28 16:33:39

标签: javascript angular ionic-framework

我正在构建一个离子应用程序,在资产目录中有一些图像。我正在尝试通过获取其路径并将其强制转换为File对象(如您在我的帖子中看到的那样)并将其发送到服务器来发送每个。 在这里,我该如何实现

const img = "/assets/img/E88MIfBTVCjmB10U1GLF_elderlies.jpg";

var imgage = new File(["foo"], img, {
  type: "image/jpg"
});


var headers = new HttpHeaders();
headers.append("Content-Type", "application/x-www-form-urlencoded");

let formData = new FormData();

formData.append("file", image);    
return this.http.post(`${this.baseUrl}`, formData, {
  headers: headers
});

1 个答案:

答案 0 :(得分:0)

这是解决方案。

  async uploadFile() {
    const img = "/assets/img/iKtafmNpSGyj57ZRckVt_earing.jpg";
    this.convertRelativeUriToFile(img, 'a',null, (file) => {
      console.log(file)
      this.uploadCare.uploadImage(file).subscribe(console.log, console.log);
    })

  }
  async convertRelativeUriToFile (filePath, fileName, mimeType, cb) {
    mimeType = mimeType || `image/${filePath.split('.')[filePath.split('.').length - 1]}`;
    const imageUrl = await fetch(filePath);
    const buffer = await imageUrl.arrayBuffer();
    cb(new File([buffer], fileName, {type:mimeType}));
  }