如何从JS节点服务器下载带有查询字符串的URL的文件?

时间:2019-02-15 06:02:00

标签: node.js web

我正在Windows PC上运行js节点服务器,但在使用查询字符串在服务器上下载文件时遇到问题。在PC上,我要下载的文件位于C:/ Users / User / Desktop。这是存储JS服务器文件的目录。

我正在尝试使用“ http://10.0.0.171:3000/?action=download&filepath=C:\ Users \ User \ Desktop \ File.txt”将该文件下载到手机上

10.0.0.171是在网络上运行服务器的本地计算机。

我需要更改什么才能将文件路径值传递给代码中的download方法并下载指定的文件?

http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "." + q.pathname;
  fs.readFile(filename, function(err, data) {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/html'});
      return res.end("404 Not Found");
    }  
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
        if(q.action == "download"){
        app.get('/download', function(req, res){
            var file = q.filepath;
            res.download(file); // Set disposition and send it.
        });
    }
    if(q.action == "rename"){
        fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
            if (err) throw err;
            console.log('File Renamed!');

        });
        }
    if(q.action == "delete"){
        fs.unlink('mynewfile2.txt', function (err) {
            if (err) throw err;
            console.log('File deleted!');

        });
        }

    if(q.action == "copy"){ 
        fs.copyFile('source.txt', 'destination.txt', (err) => {
            if (err) throw err;
            console.log('source.txt was copied to destination.txt');




        });
        }



}).listen(3000, "10.0.0.171");

0 个答案:

没有答案