我有一个应用程序,上传到一个特定的文件夹,说,“上传”的 csv 文件。 现在我想得到这个 csv 文件的完整路径,例如 D:\MyNodeApp\uploads\Test.csv。
D:\MyNodeApp\uploads\Test.csv
如何在 Node.js 中获得文件位置? 我使用 multer 来上传文件。
假设您正在使用 multer 和 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)
var path = require("path"); var absolutePath = path.resolve("Relative file path");
例如,您可以编辑结构:
C:-> WebServer-> Public-> Uploads-> MyFile.csv
你的工作目录应该是 Public 比如 path. decision 应该是这样的。
path.resolve("./Uploads/MyFile.csv");
POSIX home/WebServer/Public/Uploads/MyFile.csv WINDOWS C: WebServer 公共上传 MyFile.csv
这个解决方案是多平台的,并且允许您的应用程序在 windows 和 posx 机器上工作。
在 TypeScript 中,我根据相对文件路径执行了以下操作。
import { resolve } from 'path'; public getValidFileToUpload(): string { return resolve('src/assets/validFilePath/testFile.csv'); }
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( folder, file ); log( "File : ", file ); log( "filename : ", filename ); log( "extname : ", extname ); log( "absolutePath : ", absolutePath); });
如果您使用的是“ dirent”类型:
const path = require( "path" ); full_path = path.resolve( path_to_folder_containing__dir_ent__ , dir_ent.name );
类: f.Dirent Https://nodejs.org/api/fs.html#fs_dirent_name
模块: fs.path Https://nodejs.org/api/path.html
我认为最简单的选择是: Dirname 模块: < a href = “ https://nodejs.org/docs/update/api/modules.html # module _ dirname”rel = “ nofollow norefrer”> https://nodejs.org/docs/latest/api/modules.html#modules_dirname
文件名: https://nodejs.org/docs/latest/api/modules.html#modules_filename
Log (_ _ dirname)
Log (_ _ filename)