Получить полный путь к файлу в node.js
У меня есть приложение, которое загружает файл csv в определенную папку, скажем, загружает.
Теперь я хочу получить полный путь к этому CSV файлу.
Напр. D:\MyNodeApp\загрузки\Test.csv
Как получить расположение файла в node.js? Я использовал multer для загрузки файлов.
Заранее спасибо
Ответы
Ответ 1
С предоставленной информацией мы можем сделать очень мало, но я сделаю несколько предположений:
- Ваша папка "Uploads" находится внутри папки вашего приложения.
- Структура каталогов очень проста и фиксирована, поэтому у вас есть папка приложения и один уровень ниже, у вас есть папка "uploads".
Затем вы можете получить полный путь к этим файлам, например так:
//index.js
var filename = "myfile.csv"; ///you already have this one.
var fullpath = __dirname + "/uploads/" + filename;
То есть, используя переменную __dirname
(см. документы здесь), вы получаете полный путь к файлу index.js
, а оттуда вы можете добавить остальное вручную.
Ответ 2
var path = require("path");
var absolutePath = path.resolve("Relative file path");
Структура dir, например:
С: → WebServer- > Public- > Uploads- > MyFile.csv
и ваш рабочий каталог будет публичным, например, path.resolve будет таким.
path.resolve("./Uploads/MyFile.csv");
POSIX home/WebServer/Public/Uploads/MyFile.csv
WINDOWS C:\WebServer\Public\Uploads\MyFile.csv
это решение является мультиплатформенным и позволяет вашему приложению работать как на окнах, так и на позиционных машинах.
Ответ 3
Предполагая, что вы используете multer with express, попробуйте это в своем методе контроллера:
var path = require('path');
//gets your app 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)
Ответ 4
В TypeScript я сделал следующее на основе относительного пути к файлу.
import { resolve } from 'path';
public getValidFileToUpload(): string {
return resolve('src/assets/validFilePath/testFile.csv');
}
Ответ 5
Получить все файлы из папки и распечатать описание каждого файла.
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);
});