[英]File copying using NodeJS
我正在嘗試將文件從一個位置復制到另一位置。 這是下面的代碼,我正在將此腳本稱為[1] http:// localhost:8000 / prdcopy / acbd.pdf
var http = require('http');
var fs = require('fs');
var express=require('express');
var app=express();
var path_upload = "/234.567.890.123/";
var path_prodn = "//123.345.678.999/sample/temp/";
app.get('/prdcopy/:file',function(req,res){
var rstream = fs.createReadStream(path_upload + req.params.file);
var wstream = fs.createWriteStream(path_prodn + req.params.file);
rstream.pipe(wstream);
res.end();
rstream.on('end', function () {
console.log('SrcFile');
});
wstream.on('close', function () {
console.log('Done!');
});
});
var server=app.listen(8000,function(){
console.log("listening on port 8000...");
});
它會正確復制文件,但是在復制Firefox瀏覽器后會打開PDF閱讀器。 雖然沒有文件加載。 這是我的第一個節點腳本,我想知道我做錯了什么。 在IE中,它不會打開任何PDF Reader窗口。
這不一定是錯誤。
使用res.end()
您將發回沒有Content-Type標頭的http響應。 在這種情況下,Firefox所做的是在鍵入的URL的末尾檢測到.pdf
,並假定響應中將包含可由PDF查看器顯示的內容。 情況並非如此,因為您沒有寄回任何東西(沒有屍體)。
嘗試將res.end()
替換為res.end()
:
res.header("Content-Type", "text/html");
res.end();
您將看到即使在Firefox中也沒有顯示PDF查看器。 您還可以使用其他res方法自動為您設置內容類型。 例如,要發送回一個json響應,請用以下res.end()
替換res.end()
:
status = {};
status.message = "Copied successfully";
res.json(status);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.