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

controller.js

var multer = require('multer');

var upload = (req, res) => {
    var doc = req.files.file;
    var storage = multer.diskStorage({
        destination:(req,files, cb)=> {
          cb(null, '/uploads')
        },
        filename:(req,files, cb) => {
            var datetimestamp = Date.now();
            cb(null, uploadDoc.originalname);

        }
      })

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


    upload(req, res, function (err) {
        if(err) {
            res.json({ error_code: 1, err_desc: err });
            return;
        }
        res.json({'msg': 'File uploaded successfully!', 'file': req.files.file});


    });
};

module.exports={ upload:upload}

router.js

var express =require("express");
var Router = express.Router();

var Controller = require('../Controllers/Ucontrollers');

Router.route('/upload/file').post(Controller.mediaUpload);

module.exports =Router;

в Почтальоне, показывающий результаты:

{
    "msg": "File uploaded successfully!",
    "file": {
        "fieldName": "file",
        "originalFilename": "doc.pdf",
        "path": "C:\\Users\\DELL\\AppData\\Local\\Temp\\zwruODmEBT-iWFT0_zDJt8-y.pdf",
        "headers": {
            "content-disposition": "form-data; name=\"file\"; filename=\"doc.pdf\"",
            "content-type": "application/pdf"
        },
        "size": 292202,
        "name": "doc.pdf",
        "type": "application/pdf"
    }
}

однако в папке назначения ничего внутри документа.При получении почтальоном результата, но в папке загрузки не сохраняется.

Я пробовал все, но документ не сохранен в месте назначения. Где я допустил ошибку здесь.

1 Ответ

0 голосов
/ 13 сентября 2018

Из ответа вы можете понять, что файл хранится во временной папке.

{
    "msg": "File uploaded successfully!",
    "file": {
        "fieldName": "file",
        "originalFilename": "doc.pdf",
        "path": "C:\\Users\\DELL\\AppData\\Local\\Temp\\zwruODmEBT-iWFT0_zDJt8-y.pdf",
        "headers": {
            "content-disposition": "form-data; name=\"file\"; filename=\"doc.pdf\"",
            "content-type": "application/pdf"
        },
        "size": 292202,
        "name": "doc.pdf",
        "type": "application/pdf"
    }
}

Проблема в том, что вы не используете дисковое хранилище.Просто сделайте следующее изменение в controller.js

var upload = multer({
  storage: storage
}).single('file')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...