-1

我试图让 rename 和 onFileUploadComplete 调用他们的控制台日志,但它从来没有,但是它确实在 post 中调用了我的控制台,这给了我一个不存在的文件字符串。

var express = require("express");
var multer = require("multer");
var Excel = require("exceljs");
var router = express.Router();
var fs = require('fs');

var doneUpload = false;
var displayResults = [];
var Excelfile;


router.use(multer({ dest: "./uploads/",
 rename: function (fieldname, filename) {
   console.log("Filename: "+filename);
  return new Date().getTime() + filename;
  },
  onFileUploadComplete: function (file) {
      saveFile = file;
      console.log("onFileUploadComplete ");
    doneUpload = true;
  }
}).single("excelFile"));

router.get("/", function(req, res){
  res.sendFile(__dirname + "/index.html");
});

router.post("/api/fileupload" ,function(req, res){
    Excelfile = req.file.path;
    console.log(typeof Excelfile);

    res.render("results", {
      displayResults: displayResults
    });
});
module.exports = router;

在此先感谢。我的最终目标是拥有一个可以传递给 excel JS 的文件,目前它说该文件的字符串格式不正确。我怀疑是因为文件被重命名为一长串数字“uploads/7ab48192a1c548a3dce3b9d74cad6592”,它从未指向实际文件。我进一步怀疑这是因为我运行了 typeof 并且它确实给了我一个字符串 - 只是没有一个指向文件,特别是如果 onFileUploadComplete 从未被解雇告诉我文件已上传?

4

1 回答 1

0

Multer 的用法发生了变化。这些回调不起作用。看看这些链接:

https://github.com/expressjs/multer
multer 回调不起作用?

于 2015-09-20T17:22:47.880 回答