javascript - 如何给上传为 FormData 的 Blob 一个文件名?

标签 javascript dom google-chrome form-data

我目前正在使用以下代码上传从剪贴板粘贴的图像:

// Turns out getAsFile will return a blob, not a file
var blob = event.clipboardData.items[0].getAsFile(), 
    form = new FormData(),
    request = new XMLHttpRequest();
form.append("blob",blob);
request.open(
            "POST",
            "/upload",
            true
        );
request.send(form);

原来上传的表单字段的名称类似于:Blob157fce71535b4f93ba92ac6053d81e3a

有没有办法在客户端不进行任何服务器端通信的情况下设置或接收此文件名?

最佳答案

对于 Chrome、Safari 和 Firefox,只需使用:

form.append("blob", blob, filename);

(参见 MDN documentation)

关于javascript - 如何给上传为 FormData 的 Blob 一个文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6664967/

相关文章:

javascript - 获取 touchmove 或 touchend 结束的当前 DOM 对象

html - Angular:从 HTML 发送元素

javascript - 仅 Chrome 错误 : XMLHttpRequest cannot load file URL No 'Access-Control-Allow-Origin' header is present on the requested resource

javascript - 我们可以使用 Jade Template/Js 来开发 Firefox 扩展吗

javascript - 为什么我的 knockout 模块在收到 PubNub 消息时会失去绑定(bind)?

javascript - 如何只允许一个事件的 useState

javascript - 搜索/过滤下拉菜单随处关闭

javascript - 将窗口从具有与父级不同域的 iFrame 滚动到 Iframe 顶部

javascript - 确保我的 javascript 是 dom 修改时最后执行的事情

css - 设置带挖空 : Works in chrome but not other browsers 的背景图像