2015-07-09 25 views
5

Tôi có một ứng dụng tải lên tệp csv vào một thư mục cụ thể có nội dung tải lên. Bây giờ tôi muốn có được đường dẫn đầy đủ của tệp csv đó. Ví dụ: D: \ MyNodeApp \ uploads \ Test.csvNhận một đường dẫn tệp đầy đủ trong node.js

Làm cách nào để có được vị trí tệp trong node.js? Tôi đã sử dụng multer để tải lên tệp.

Cảm ơn trước

+0

Cần biết thông tin nào bạn phải bắt đầu. Bạn đã có tên tập tin mà không có đường dẫn? Tất cả các tệp có đi vào cùng một thư mục không? Thư mục này có phải là một vị trí đã biết trong thời gian chạy không? Một ví dụ mã có thể giúp đỡ ở đây. –

Trả lời

3

Với những thông tin được cung cấp, chúng tôi có thể làm rất ít, nhưng tôi sẽ thực hiện một vài assumtions:

  • "Tải lên" thư mục của bạn là bên trong thư mục ứng dụng của bạn.
  • Cấu trúc thư mục rất đơn giản và cố định, vì vậy bạn có thư mục ứng dụng và một cấp dưới đây, bạn có thư mục "tải lên" của mình.

Sau đó, bạn có thể nhận được đường dẫn đầy đủ của các tập tin như thế này:

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

Đó là nó, bằng cách sử dụng (see docs here) biến __dirname, bạn có thể fullpath đến tập tin index.js, và từ ở đó bạn có thể thêm phần còn lại theo cách thủ công.

+0

Bạn có thể cập nhật câu trả lời này tương tự như câu trả lời của @Anton Stafeyev không? Bởi vì các câu hỏi trong tiêu đề (trong đó cho thấy như là một kết quả tìm kiếm web) là chung quá. – atevm

+0

Chỉ cần lưu ý rằng '__dirname' không thể được sử dụng bên trong nút REPL, nó cần được sử dụng bên trong một tệp đã lưu – vqdave

1

Giả sử bạn đang sử dụng multer với nhanh, cố gắng này trong phương pháp điều khiển của bạn:

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) 
25
var path = require("path"); 
var absolutePath = path.resolve("Relative file path"); 

Bạn cấu trúc thư mục ví dụ:

C: -> WebServer-> công-> Tải lên -> MyFile.csv

và thư mục làm việc của bạn sẽ là Công khai, ví dụ: path.resolve sẽ giống như vậy.

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

POSIX home/WebServer/công cộng/Uploads/MyFile.csv
WINDOWS C: \ WebServer \ Public \ ơn \ MyFile.csv

giải pháp này là đa nền và cho phép ứng dụng của bạn để làm việc trên cả hai cửa sổ và máy posix.

Các vấn đề liên quan