我在我的本地系統的驅動器中有一個文件。我需要將文件下載到E:Drive。如何使用node.js和http請求做到這一點?我是node.js的初學者。請給我寶貴的建議。如何使用node.js和http下載文件?
注意:該文件可以是任何類型。
我在我的本地系統的驅動器中有一個文件。我需要將文件下載到E:Drive。如何使用node.js和http請求做到這一點?我是node.js的初學者。請給我寶貴的建議。如何使用node.js和http下載文件?
注意:該文件可以是任何類型。
下面是一個例子:
// upload.js
var fs = require('fs')
var newPath = "E:\\newPath";
var oldPath = "D:\\oldPath";
exports.uploadFile = function (req, res) {
fs.readFile(oldPath, function(err, data) {
fs.writeFile(newPath, data, function(err) {
fs.unlink(oldPath, function(){
if(err) throw err;
res.send("File uploaded to: " + newPath);
});
});
});
};
// app.js
var express = require('express'), // fetch express js library
upload = require('./upload'); // fetch upload.js you have just written
var app = express();
app.get('/upload', upload.uploadFile);
app.listen(3000);
基本上有兩個部分,一個做複製從一個驅動器到另一個,並且另一種是用於觸發。一旦你運行你app.js
,並作出一個GET請求localhost:3000/upload
它會將文件從newPath
複製到oldPath
。欲瞭解更多信息,請登錄expressjs和fs。
假設它是一個文本文件,您將不得不編寫兩個node.js服務器。
第一個會回答(所有/特定,你的選擇)http獲取文件的內容,另一個會獲取並下載文件。
server.js:將只能用於文本文件
var http = require('http'),
fs = require('fs'),
server = http.createServer(function (req, res){
res.writeHead(200, {'content-type': 'text/text'});
fs.readFile('E:/path/to/file.txt', function (data) {
res.write('' + data);
res.end();
});
}).listen(8080);
client.js
var http = require('http'),
fs = require('fs'),
file = fs.createWriteStream('D:/path/to/new.txt', {flags: 'w'});
http.get('http://localhost:8080', function (res) {
res.pipe(file, {end: 'false'});
res.on('end', function() {
file.end();
});
});
編輯:
唯一的優勢與anvarik的解決方案是,我不T選用快遞...
爲什麼你需要http?您只需將文件從一個驅動器移動到另一個驅動器即可。 – anvarik
但要求是使用http請求。 – thevan
它是一個文本文件還是一個二進制文件? – DrakaSAN