【问题标题】:Downloading a file from MongoDB to local filesystem从 MongoDB 下载文件到本地文件系统
【发布时间】:2016-04-10 15:10:31
【问题描述】:

我问了各种各样的问题,但得到的答案很有限,这让我走到了这一步: 猫鼬代码:

app.get('/Download/:file(*)', function (req, res) {
    grid.mongo = mongoose.mongo;
    var gfs = grid(conn.db);
    var file = req.params.file
    var fs_write_stream = fs.createWriteStream('Program.cs');
    
    var readstream = gfs.createReadStream({ filename: file });
    
    readstream.pipe(fs_write_stream);

    res.download(__dirname+'/Program.cs', 'Solution.cs', function (err) {
        if (err) throw err;
        else console.log("check console");
    });
})

角度代码:

$scope.Download = function () {
        $http.get(url + "/Download/"+"Program.cs")
        .success(function (res) {
            console.log(res);
        })}

当我打开我的控制台角度时只返回一个空行,当我查看网络方面时,标题是这样的:


我希望能够将此文件存储到我的本地文件系统到我希望能够自己选择的路径。请帮帮我,我很绝望,我到处寻找解决方案,非常感谢您!

【问题讨论】:

  • 您说的是服务器还是客户端上的本地文件系统? (后者应该是不可能的,因为网站无法告诉网络浏览器将文件保存在哪里)
  • 我只希望客户端能够下载存储在我的 mongodb 中的文件,就像任何其他允许您下载 .pdf 或 .txt 等文件的站点一样

标签: angularjs node.js mongodb mongoose


【解决方案1】:

试试这个,而不是你的客户端下载尝试:

<a class="btn" href="/Download/Program.cs" download>

【讨论】:

  • 给我这个错误:“HTTP 错误 404.7 - 未找到请求过滤模块被配置为拒绝文件扩展名。”这可能是因为它是一个“.cs”文件......但这就是我想要下载它的方式。这是因为这是我网站的重点。老师们应该下载这些“.cs”文件,这样他们就可以运行代码并纠正需要的地方
  • 您需要配置您的服务服务器。 stackoverflow.com/questions/13455939/…
  • 我认为它可以正常工作。现在它只是告诉我“您要查找的资源已被删除、名称已更改或暂时不可用。”不知道他在说什么
  • 它还显示:“物理路径”应用程序文件的路径“\Download\Program.cs”但是这个“\Download”文件不存在,所以它当然不会在那里找到任何东西。发生了什么事?
  • 我自己创建了这个文件路径,看看它会给我什么结果,它给出了“由于扩展​​配置,您请求的页面无法提供服务。如果页面是脚本,请添加处理程序。如果应该下载文件,请添加 MIME 映射。我该如何解决这个问题?而且,我是否更改了它读取的目录?
猜你喜欢
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
相关资源
最近更新 更多