js 和 Electron 。我在将本地镜像文件推送到远程服务器时遇到问题。服务器使用的是php。这是我的客户端代码:
var documentList = [];
var stmtDoc = db.prepare("SELECT * FROM `tb_dokumen_pasien`");
while(stmtDoc.step()) {
var rowDoc = stmtDoc.getAsObject();
var data = fs.createReadStream(__dirname + "/resources/" + rowDoc['id'] + "/" + rowDoc['doc_name']);
var document = {
"document_name" : rowDoc['doc_name'],
"data" : data
}
documentList.push(document);
}
之后,我向远程服务器创建一个 ajax post 请求:
$.ajax({
url: "http://url/web_api.php?action=test_upload",
type: 'POST',
data : { "document_list": documentList },
dataType: "json",
success: function(response) {
console.log(response);
}
});
当我测试它时,在我的开发人员工具控制台中我收到了以下消息:
internal/streams/BufferList.js:15 Uncaught TypeError: Cannot read property 'length' of undefined
并且文件未发送到服务器。谁能帮助我如何解决这个问题?谢谢
有一段时间我发现这个问题的有效解决方案是使用base64格式将其发送到远程服务器:
var documentList = [];
var stmtDoc = db.prepare("SELECT * FROM `tb_dokumen_pasien`");
while(stmtDoc.step()) {
var rowDoc = stmtDoc.getAsObject();
var data = fs.createReadStream(__dirname + "/resources/" + rowDoc['id'] + "/" + rowDoc['doc_name']);
var base64 = Buffer.from(data).toString('base64');
var document = {
"document_name" : rowDoc['doc_name'],
"data" : base64
}
documentList.push(document);
}
我仍然在寻找最好的方法而不是使用 base64,谢谢
我是一名优秀的程序员,十分优秀!