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

我使用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);
    }
}

注意:_post2()是使用XMLHttpRequest进行上传功能.

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

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

这是上传数据详细信息:

请求有效载荷

——WebKitFormBoundaryW0NQVOkdrfkYGWV3
Content-disposition: form-data; name=”%%File.48257279001171c9.2c36671da7f1b6c9482575de002e1f14.$Body.0.3D8″; filename=“blob”

Content-Type: image/png

——WebKitFormBoundaryW0NQVOkdrfkYGWV3–

解决方法

根据 FormData,您应该可以在data.append()调用添加一个filename参数,如下所示:
data.append("ImageFileField",blob,"imageFilename.png");

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...