我正尝试使用此功能从其Node.js中提取文件到Google云端硬盘示例:
function uploadFiles() {
var fileMetadata = {
'name': 'test-1.jpg'
};
var media = {
mimeType: 'image/jpeg',
body: fs.createReadStream('img/test-1.jpg')
};
gapi.client.drive.files.create({
resource: fileMetadata,
media: media,
fields: 'id'
}, function(err, file) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('File Id: ', file.id);
}
});
}
我的问题是fs.createReadStream()
行。
由于Node.js是服务器端工具并且浏览器中不存在require()
,如何在不使用Node.js的情况下从JavaScript中的文件创建字节流?
编辑:-gapi.client.drive.files.create()
问题
function readFile(evt) {
var fData = [];
var f = evt.target.files[0];
if (f) {
var r = new FileReader();
r.readAsText(f);
fData.unshift(f.name,f.type);
var myInt = setInterval(function() {
if (r.readyState == 2) {
fData.push(r.result);
uploadFiles(fData);
clearInterval(myInt);
}
}, 50);
} else {
alert("Failed to load file");
}
}
function uploadFiles(dataArray) {
var fileMetadata = {
'name': dataArray[0]
};
var media = {
mimeType: dataArray[1],
body: dataArray[2]
};
gapi.client.drive.files.create({
resource: fileMetadata,
media: media,
fields: 'id'
}, function(err, file) {
console.log("Reached!");
if (err) {
console.error(err);
} else {
console.log('File Id: ', file.id);
}
});
}
document.getElementById('upFile').addEventListener('change', readFile, false);
答案 0 :(得分:0)
在客户端使用filereader读取文件数据。使用此演示代码并尝试。
<script type="text/javascript">
function readSingleFile(evt) {
var f = evt.target.files[0];
if (f) {
var r = new FileReader();
r.onload = function(e) {
var contents = e.target.result;
}
r.readAsText(f);
} else {
alert("Failed to load file");
}
}
document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
</script>