【发布时间】:2015-01-25 08:57:01
【问题描述】:
我需要将图像上传到 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});
}
我需要一种将 blob 转换为文件以上传图像的方法。
有人可以帮我吗?
【问题讨论】:
-
文件是 Blob,只需添加元属性即可。
-
上传 blob 时的默认值为
blob。因此,我首先提取了我正在裁剪的文件的名称,然后给出了相同的filename,因此在将裁剪后的文件上传到服务器时通过执行form.append("blob",blob, filename);。 -
@skip 我在下面的回答有帮助吗?是这样,请标记为正确答案。
标签: javascript node.js file-upload blob