将本地 blob 图像 url 上传到 php

Posted

技术标签:

【中文标题】将本地 blob 图像 url 上传到 php【英文标题】:Upload local blob image url to php 【发布时间】:2021-11-05 12:55:01 【问题描述】:

我的本​​地主机中有一个 blob 图像 URL(看起来像“blob:http://localhost/1d795687-b478-4edf-9b3d-8dda768b9d9f”),我想获取这个文件并使用 javascript 将其上传到 php .

我只想知道如何将此图像作为文件获取。

【问题讨论】:

使用您用于创建 url 的原始 blob,否则您将不得不使用类似fetch()-ing url 并获取 blob 的解决方法,请参阅 ***.com/questions/11876175/… 'fetch()' 也可以。我得到了我的 URL blob,传递给 fetch(),它给了我一个 blob 对象,然后我用这个 blob 做了一个新的文件对象并将它上传到 PHP。谢谢! 注意你不需要创建一个新的文件对象你可以发送blob,File只是Blob的一种特殊类型 我刚刚检查了它,它真的只适用于一个 blob! 【参考方案1】:

您应该将文件作为 formData 发送。然后将其直接保存为服务器中的 blob。您可以使用类似的代码

let formData = new FormData();
formData.append(key, blobImage);
Make backend api call with formdata

【讨论】:

我可以在“blobImage”中传递blob URL吗? 是的,你可以在blobImage中传递blob URL【参考方案2】:

我使用了let blob = await fetch(url).then(r => r.blob()),它给了我一个 blob 对象,我的图像存储在本地 blob URL 中。

代码:

let blob = await fetch(url).then(r => r.blob());
var data = new FormData();
data.append('image', blob, 'image.jpg');

然后,只需将data 发送到 PHP。

【讨论】:

以上是关于将本地 blob 图像 url 上传到 php的主要内容,如果未能解决你的问题,请参考以下文章

通过直接 URL 浏览时上传到 Azure Blob 存储的图像不可用

如何使用 React 将本地图像而不是 URL 发送到计算机视觉 API

如何将blob url数据保存在目录中

JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串blob对象在上传

如何将特定于类的文件夹中的图像上传到 Azure ML Studio 上的 Azure Blob 存储

在 azure blob 子容器中从本地上传 zip