我正在尝试使用node.js下载文件,这是我的代码:
var file_url = req.body.filename;
var DOWNLOAD_DIR = './downloads/';
var options = {
host: url.parse(file_url).host,
port: 80,
path: url.parse(file_url).pathname
};
var file_name = url.parse(file_url).pathname.split('/').pop();
var file = fs.createWriteStream(DOWNLOAD_DIR + file_name);
http.get(options, function (resp) {
resp.on('data', function (data) {
file.write(data);
}).on('end', function () {
file.end();
console.log(file_name + ' downloaded to ' + DOWNLOAD_DIR);
delet(file_url);
});
});
这里我手动给DOWNLOAD_DIR,因此它正在下载到那个
目录,因为它本地主机不是问题,但当我上传这个
代码到服务器然后该文件应下载到该特定的
用户的机器,所以如何动态地给路径DOWNLOAD_DIR变量
答案 0 :(得分:0)
如果“下载”文件夹位于主目录中(并且您要在“下载”文件夹中下载),则可以使用
var path = require('path');
var file_url = req.body.filename;
var DOWNLOAD_DIR = path.join(process.env.HOME || process.env.USERPROFILE, 'downloads/');
var file_name = url.parse(file_url).pathname.split('/').pop();
var file_path = path.join(DOWNLOAD_DIR,file_name);
var file = fs.createWriteStream(file_path);
PS:在处理路径和文件时,总是使用nodejs的路径模块来生成路径。