在node.js

时间:2015-07-09 12:07:03

标签: javascript node.js

我有一个将csv文件上传到特定文件夹的应用程序,例如上传。 现在我想获得该csv文件的完整路径。 对于例如d:\ MyNodeApp \上传\ Test.csv

如何获取node.js中的文件位置?我用multer来上传文件。

提前致谢

6 个答案:

答案 0 :(得分:62)

var path = require("path");
var absolutePath = path.resolve("Relative file path");

你的dir结构例如:

C: - > WebServer->公开 - > Uploads-> MyFile.csv

并且您的工作目录将是Public,例如,path.resolve就是这样。

path.resolve("./Uploads/MyFile.csv");

POSIX home / WebServer / Public / Uploads / MyFile.csv
WINDOWS C:\ WebServer \ Public \ Uploads \ MyFile.csv

此解决方案是多平台的,允许您的应用程序在Windows和posix计算机上运行。

答案 1 :(得分:8)

根据所提供的信息,我们可以做的很少,但我会做一些假设:

  • 您的“上传”文件夹位于您的应用文件夹中。
  • 目录结构非常简单并且已修复,因此您拥有自己的应用程序文件夹并且下面有一个级别,您有“上传”文件夹。

然后,您可以获得这些文件的完整路径:

//index.js
var filename = "myfile.csv"; ///you already have this one.
var fullpath = __dirname + "/uploads/" + filename;

就是这样,通过使用__dirnamesee docs here)变量,您可以获得index.js文件的完整路径,然后您可以手动添加其余文件。

答案 2 :(得分:3)

假设您正在使用multer with express,请在控制器方法中尝试:

var path = require('path');

//gets your app's root path
var root = path.dirname(require.main.filename)

// joins uploaded file path with root. replace filename with your input field name
var absolutePath = path.join(root,req.files['filename'].path) 

答案 3 :(得分:0)

在TypeScript中,我根据相对文件路径执行了以下操作。

import { resolve } from 'path';

public getValidFileToUpload(): string {
  return resolve('src/assets/validFilePath/testFile.csv');
}

答案 4 :(得分:0)

从文件夹中获取所有文件并打印每个文件说明。

const path = require( "path" );
const fs = require( 'fs' );
const log = console.log;
const folder = './';

fs.readdirSync( folder ).forEach( file => {

   const extname = path.extname( file );
   const filename = path.basename( file, extname );
   const absolutePath = path.resolve( testFolder, file );

   log( "File : ", file );
   log( "filename : ", filename );
   log( "extname : ", extname );
   log( "absolutePath : ", absolutePath);

});

答案 5 :(得分:0)

如果您使用的是“直接”类型:

str

类别:fs.Dirent https://nodejs.org/api/fs.html#fs_dirent_name

模块:fs.path https://nodejs.org/api/path.html