当前位置: 首页 > 知识库问答 >
问题:

当我使用html5将数据上传到服务器时,我可以在blob数据中设置文件名吗?

濮阳祯
2023-03-14

我使用event.clipboardData从剪贴板获取图像,然后上传服务器,代码:

var items = e.clipboardData.items;
for(var i=0;i<items.length;i++)
{
    if(items[i].type.indexOf("image")!=-1)
    {
        var blob=items[i].getAsFile();
        var data = new FormData();
        data.append("ImageFileField",blob);
        _post2("url...",data);
    }
}

注意:\u post2()是一个使用XMLHttpRequest进行上传工作的函数。

以上代码工作正常,图像可以从剪贴板直接上传到我的服务器上。

但我发现了一个问题,上传到服务器的图像文件名被固定为“blob”,我可以在上传到服务器之前修改文件名吗?

以下是上传数据的详细信息:

请求有效载荷

------WebKitFormBoundaryW0NQVOkdrfkYGWV3
内容配置:表单数据;name=“%%File.48257279001171c9.2C36671DA7F1B6C9482575DE002E1F1F14.$Body.0.3D8”;filename=“blob”

内容类型:图片/png

------WebKitFormBoundaryW0NQVOkdrfkYGWV3--

共有3个答案

东方高洁
2023-03-14

如果你想修改blob本身的文件名,只需添加一个名为“name”的键

blob.name = "imageFilename.png"

在那之后,你的JS函数应该能够拾取它。我使用jQuery文件上传,这个可以用它。

边桐
2023-03-14

上传过程中,我遇到了同样的问题,文件名不是用blob对象分配给多个部分,而是在大量google和RND之后。我找到了解决这个问题的简单而最好的方法。

 let file = event.target.files[0];
 this.fileName = file.name;   // Like : abc.jpeg

 this.croppedImage = file  //blob object after cropping
 const formData = new FormData();
 formData.append('file',this.croppedImageSend,this.fileName);
 this.http.post(url, formData, headersOptions) 
怀浩大
2023-03-14

根据FormData,您应该能够向数据中添加文件名参数。append()调用如下:

data.append("ImageFileField", blob, "imageFilename.png");
 类似资料:
  • 当我想从inflxdb备份一些数据时,会发生这样的情况: [root@bj-collection-01 opt]#inflxd backup-database clireport-host localhost:8086/opt/clireportbak/ 2018/04/16 10:17:12将metastore备份到/opt/clireportbak/meta.00 2018/04/16 10:

  • 我已经通过Composer下载并安装了谷歌云存储PHP库,下载了JSON密钥文件,但我无法使用该库做任何事情。当我严格按照指示去做时,我只得到错误。不管怎样,这是我试图做任何事情的文件中的代码,比如列表桶文件,或者上传文件,等等...谁能告诉我我做错了什么?我真的很想在我的服务器上使用谷歌云存储来备份文件。 如果这有助于澄清,我正在使用DreamHost VPS作为我的服务器。它支持PHP7.0。

  • 我正在使用Kafka流从主题获取数据,现在我想将这些数据加载到Postgres。可能吗?

  • 问题内容: Python新手对csv模块感到有点沮丧。以这种速度,如果我自己编写文件解析器会更容易,但是我想用Pythonic的方式做事情。 我写了一个小python脚本,应该将我的数据保存到CSV文件中。 这是我的代码片段: 文件myfile.csv已成功创建,但为空-但已锁定,因为Python进程仍在使用它。似乎数据已写入内存中的文件,但尚未刷新到磁盘。 由于Python进程在文件上持有锁,因

  • 问题内容: 我需要即时将画布图像数据上传到服务器(数据库),即,我需要创建一个带有input=file的表单,并在没有任何用户交互的情况下发布图像数据。 问题答案: 您不需要文件输入,只需使用Ajax 获取数据并将其发布到服务器即可。 请参阅MDN文档。 但是即使使用,您也无法在IE中获取图像数据。

  • 我的Firebase实时数据库的一个子节点变得巨大(大约20 GB),我需要清除这个节点,并使用Python Admin SDK将上个月从备份中提取的数据插入Firebase实时数据库。 在文档中,我看到了以下选项: set-将数据写入或替换到定义的路径,如消息/用户/ 更新-更新定义路径的某些键,而不替换所有数据 推-添加到数据库中的数据列表。每次将新节点推送到列表上,数据库都会生成一个唯一的键