如何上传zip文件并在快递js中提供其内容的永久链接

时间:2016-07-15 13:12:44

标签: javascript node.js express

我对Javascript和Node JS更新鲜。我正在寻找上传包含图片的zip文件的解决方案,并将这些图片永久链接。现在我可以上传一个zip文件并提取其中的所有图片,如下所示:

var express = require('express');
var router = express.Router();
var multer = require('multer');
var fs = require('fs');
var AdmZip = require('adm-zip');

var storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, 'public/uploads/');
    },
    filename: function (req, file, cb) {
        cb(null, file.originalname);
    }
});
var upload = multer({ storage: storage }).any();



/* get home page. */
router.get('/', function (req, res) {
    res.render('index', { title: 'express' });
});

router.post('/', upload, function (req, res) {
    var zip = new AdmZip("./public/uploads/Camera Roll.zip");
    zip.extractAllTo('public/uploads/', true);
    res.send(req.files);   
});


module.exports = router;

上传zip文件后,我将其保存在“public / uploads /”中。如何获取保存上传的zip文件的路径,因为现在我只是在我的代码中识别它(var zip = new AdmZip(“./ public / uploads / Camera Roll.zip”);)。是否有任何变量来表示它?一旦我解压缩文件,所有图片都在“公共/上传”文件夹中,这是否意味着我给所有图片提供了永久链接?

1 个答案:

答案 0 :(得分:1)

我找到了。只需使用req.file.path但需要首先使用var upload = multer({storage:storage})。single(filename);