使用 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 reader。虽然没有加载文件。这是我的第一个节点脚本,我想知道我做错了什么。在 IE 中它不打开任何 PDF Reader window.
这不一定是错误。
使用 res.end()
,您将发回没有 Content-Type header 的 http 响应。 Firefox 在这种情况下所做的是检测键入的 URL 末尾的 .pdf
并假设响应将包含 PDF 查看器可显示的内容。情况并非如此,因为您没有发回任何东西(没有 body)。
尝试将 res.end()
替换为:
res.header("Content-Type", "text/html");
res.end();
您会看到即使在 Firefox 中也不会显示任何 PDF 查看器。您还可以使用其他自动为您设置内容类型的 res 方法。例如,要发送 json 响应,将 res.end()
替换为:
status = {};
status.message = "Copied successfully";
res.json(status);
我正在尝试将文件从一个位置复制到另一个位置。下面是我的代码,我将此脚本称为 [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 reader。虽然没有加载文件。这是我的第一个节点脚本,我想知道我做错了什么。在 IE 中它不打开任何 PDF Reader window.
这不一定是错误。
使用 res.end()
,您将发回没有 Content-Type header 的 http 响应。 Firefox 在这种情况下所做的是检测键入的 URL 末尾的 .pdf
并假设响应将包含 PDF 查看器可显示的内容。情况并非如此,因为您没有发回任何东西(没有 body)。
尝试将 res.end()
替换为:
res.header("Content-Type", "text/html");
res.end();
您会看到即使在 Firefox 中也不会显示任何 PDF 查看器。您还可以使用其他自动为您设置内容类型的 res 方法。例如,要发送 json 响应,将 res.end()
替换为:
status = {};
status.message = "Copied successfully";
res.json(status);