【问题标题】:creating an image file object from an image web url从图像 Web url 创建图像文件对象
【发布时间】:2017-03-07 09:31:55
【问题描述】:

我想获取图像的 URL 并使用它来获取图像文件对象并将其发送到我的服务器。我环顾四周,已经走到了这一步,但代码不能正常工作。当我将它发送到我的服务器时,它不会作为图像文件上传,而只是作为没有 .JPG 扩展名或任何图像文件扩展名的文件上传。

    var byteNumbers = new Array(this.imgUrl.length);

    for (var i = 0; i < this.imgUrl.length; i++)
    {
        byteNumbers[i] = this.imgUrl.charCodeAt(i);
    }

    this.img = new File(byteNumbers, "imgFromUrl", { type: "image/jpeg" });  

这将获取文件并向我显示我的日志中的文件详细信息,例如 lastmodified、文件名等。但是当我将它上传到我的服务器时,我只会得到一个没有如上所述扩展名的文件。

通过附加到表单并发送到服务器来上传文件。这是因为我也在发送其他数据。

this.http.post(this.serverUrl + "face/detect/", data, { headers: this.headers })
          .toPromise()
          .then(response => response.json())
          .catch(error => error);

【问题讨论】:

  • 请分享您用于将文件上传到服务器的代码
  • @PatrickHund 我知道服务器代码可以工作,因为我有一个使用相同代码的文件选择器,并且工作正常。但我希望能够粘贴图片的网址并上传该图片。
  • stackoverflow.com/questions/12405197/… 如果有帮助,请检查这个:)

标签: javascript


【解决方案1】:

您需要在文件名中指定扩展名

 var byteNumbers = new Array(this.imgUrl.length);

    for (var i = 0; i < this.imgUrl.length; i++)
    {
        byteNumbers[i] = this.imgUrl.charCodeAt(i);
    }

    this.img = new File(byteNumbers, "imgFromUrl.jpg", { type: "image/jpeg" }); 

告诉我这是否能解决问题。

【讨论】:

  • 好的 向我们展示您如何上传文件的代码。
猜你喜欢
  • 2012-01-09
  • 2017-02-15
  • 2016-06-22
  • 2011-03-08
  • 2021-04-09
  • 2019-12-31
  • 1970-01-01
  • 2020-06-25
相关资源
最近更新 更多