Multer не сохраняется в указанный пункт назначения - PullRequest
0 голосов
/ 08 октября 2018

Я довольно новичок в nodejs / express, но, что бы я ни делал, мне кажется, что я не могу сохранить multer для сохранения в указанном месте назначения, кажется, что он полностью игнорирует параметр вместе.Код показан ниже

//app.js
var multer = require('multer');
var fs = require('fs');
var apiRouter = express.Router();
var app = express();

var store = multer.diskStorage({
  filename: function(req,file,cb){
    console.log("filename");
    cb(null, Date.now()+'.'+file.originalname);
  },
  desitnation: function(req,file,cb){
    console.log("storage");
    cb(null,'./public/');
  }
});

var upload = multer({storage:store}).single('file');

apiRouter.post('/upload', function(req, res){
  upload(req, res, function (err) {
    if (err) {
      return res.end(err.toString());
    }
    console.log(req.file);
    return res.json({originalname:req.file.originalname, uploadname:req.file.filename});
  });
});

Ответ, который я получаю при загрузке, показан ниже:

GET /vendor.js.map 200 3.916 ms - 6636755
filename
{ fieldname: 'file',
  originalname: 'Desert.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  destination: 'C:\\Users\\Dwyer\\AppData\\Local\\Temp',
  filename: '1538979138829.Desert.jpg',
  path:
   'C:\\Users\\Dwyer\\AppData\\Local\\Temp\\1538979138829.Desert.jpg',
  size: 845941 }
POST /api/upload 200 70.031 ms - 69

Кажется, файл настроен правильно, но я не уверен, где он находитсяполучает назначение от, №3 я понимаю, почему параметр назначения не читается.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

но, что бы я ни делал, мне кажется, что я не могу сохранить multer для сохранения в указанном месте назначения, он полностью игнорирует параметр.

Это связано с тем, что в конфигурации, по-видимому, имеется опечатка.

'use strict';

var store = multer.diskStorage({
  filename: function (req, file, cb) {
    console.log("filename");
    cb(null, Date.now() + '.' + file.originalname);
  },
  destination: function (req, file, cb) { // it is destination not desitnation :)
    console.log("storage");
    cb(null, './public/');
  }
});
0 голосов
/ 08 октября 2018

Вы пытаетесь использовать физический адрес в пункте назначения?Я предполагаю, что пункт назначения в документе multer - это физический адрес в операционной системе Linux.

...