Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找相对文件路径以分析Excel文件_Javascript_Node.js_Excel_Client Side_Filepath - Fatal编程技术网

Javascript 查找相对文件路径以分析Excel文件

Javascript 查找相对文件路径以分析Excel文件,javascript,node.js,excel,client-side,filepath,Javascript,Node.js,Excel,Client Side,Filepath,我正在使用Node.JS构建一个web应用程序,它至少应该允许用户上传excel电子表格(.xlsx),然后使用excel解析器(目前使用Node xlsx-),我希望能够找到这个文件,解析它,并将其内容打印到控制台。到目前为止,我已经上传并存储了该文件,但在指定我的应用程序应该搜索的文件路径时遇到了问题 我相信我的问题在于,我试图在服务器端执行此操作,并且我告诉我的应用程序在无法访问此文件时在用户目录中搜索此文件 下面是示例代码: var fullfile; app.post('/upload

我正在使用Node.JS构建一个web应用程序,它至少应该允许用户上传excel电子表格(.xlsx),然后使用excel解析器(目前使用Node xlsx-),我希望能够找到这个文件,解析它,并将其内容打印到控制台。到目前为止,我已经上传并存储了该文件,但在指定我的应用程序应该搜索的文件路径时遇到了问题

我相信我的问题在于,我试图在服务器端执行此操作,并且我告诉我的应用程序在无法访问此文件时在用户目录中搜索此文件

下面是示例代码:

var fullfile;
app.post('/upload', function (request, response) {
var fstream;
request.pipe(request.busboy);
request.busboy.on('file', function (fieldname, file, filename) {
    console.log('Uploading: ' + filename);
    fstream = fs.createWriteStream('./storedFiles/' + filename);
    file.pipe(fstream);
    fstream.on('close', function () {
        response.redirect('success');
        console.log('Uploaded to ' + fstream.path);
        fullfile=fstream.name;
        var obj = xlsx.parse(__dirname + fullfile);
        console.log(obj);
       });
   });
});
这将产生以下错误:

返回binding.open(pathmodule.\u makelong(路径)stringtoflags(标志)模式) 错误:enoint,没有此类文件或目录“C\Users”(此处为我的本地计算机上的文件路径)

有人能指出一种我所缺少的方法吗?我觉得这与fs方法有关


谢谢

首先,保存文件时不要使用用户提供的文件名-您将获得重复的文件名,这可能会带来安全风险(通常,永远不要信任用户提供的数据)。只需使用您自己的值即可-使用您自己的命名约定来防止重复或使用操作系统提供的tmp文件更为标准

要解决您的问题,请尝试:

需要在文件顶部显示
path

var path = require('path');
并将
fullfile
的值更改为:

fullfile = path.join(__dirname,fstream.path)
然后将
fullfile
传递给
xlsx.parse

var obj = xlsx.parse(fullfile);  

你能澄清哪一行抛出了错误吗?嘿,亚当,具体来说就是这一行“var obj=xlsx.parse(uu dirname+fullfile);”成功了!我正在研究文件系统和路径方法,但还没有遇到这个问题。谢谢你的帮助。