簡體   English   中英

使用NodeJS復制文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM