我需要将图像上传到NodeJS服务器到某个目录.我正在使用connect-busboy节点模块.
我dataURL使用以下代码将我转换为blob的图像:
dataURLToBlob: function(dataURL) {
var BASE64_MARKER = ';base64,';
if (dataURL.indexOf(BASE64_MARKER) == -1) {
var parts = dataURL.split(',');
var contentType = parts[0].split(':')[1];
var raw = decodeURIComponent(parts[1]);
return new Blob([raw], {type: contentType});
}
var parts = dataURL.split(BASE64_MARKER);
var contentType = parts[0].split(':')[1];
var raw = window.atob(parts[1]);
var rawLength = raw.length;
var uInt8Array = new Uint8Array(rawLength);
for (var i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], {type: contentType});
}
Run Code Online (Sandbox Code Playgroud)
我需要一种方法将blob转换为文件以上传图像.
有人可以帮我吗?
我目前正在使用以下代码上传从剪贴板粘贴的图像:
// 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);
Run Code Online (Sandbox Code Playgroud)
结果是上传的表单字段,其名称与此类似:Blob157fce71535b4f93ba92ac6053d81e3a
有没有办法设置此或接收此文件名客户端,而不进行任何服务器端通信?