我目前正在上传从剪贴板粘贴的图像,代码如下:
// 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);
在上传的表单字段中,receive的名称类似于: Blob157fce71535b4f93ba92ac6053d81e3a
有没有办法在不进行任何服务器端通信的情况下,在客户端设置或接收这个文件名?
发布于 2012-01-30 23:18:31
发布于 2016-01-29 01:20:26
在这里添加这个,因为它似乎不在这里。
除了优秀的form.append("blob",blob, filename);
解决方案之外,您还可以将blob转换为File
实例:
var blob = new Blob([JSON.stringify([0,1,2])], {type : 'application/json'});
var fileOfBlob = new File([blob], 'aFileName.json');
form.append("upload", fileOfBlob);
发布于 2011-07-21 10:34:34
由于您要将数据粘贴到剪贴板,因此没有可靠的方法来了解文件的来源及其属性(包括名称)。
最好的办法是想出一个自己的文件命名方案,并随blob一起发送。
form.append("filename",getFileName());
form.append("blob",blob);
function getFileName() {
// logic to generate file names
}
https://stackoverflow.com/questions/6664967
复制相似问题