2016-04-05 2 views
0

я хочу, чтобы загрузить файл со страницы HTML и сохранить его в базе данных MongoDB с помощью Node.js и используя multer НОГО пакета как промежуточные между клиентом и серверомКак загрузить файл и сохранить его в mongodb с помощью node.js?

Ниже мой app.js файл:

var express = require('express') 
, multer = require('multer'); 

var app = express(); 
var multer = require('multer'); 

var storage = multer.diskStorage({ 
    destination: function (req, file, callback) { 
    callback(null, './uploads'); 
    }, 
    filename: function (req, file, callback) { 
    callback(null, file.fieldname + '-' + Date.now()); 
    } 
}); 
var upload = multer({ storage : storage}).single('userPhoto'); 

app.post('/api/photo',function(req,res){ 
upload(req,res,function(err) { 
    if(err) { 
     return res.end("Error uploading file."); 
    } 
    res.end("File is uploaded"); 
}); 
}); 

и HTML форма:

<form id="uploadForm" enctype="multipart/form-data" action="/api/photo" method="post"> 
    <div class="azureD" style="display:none;"> 
    <div class="pull-left"> 
     <label class="labelTemp">Subscription ID</label> 
     <div class="clickRole addStoTabWid"> 
     <input type="text" id="" placeholder="" style="border:none;width:100%;"> 
    </div> 
    </div> 
    <div class="pull-left"> 
    <label class="labelTemp">Upload .pem file</label> 
    <div class="clickRole addStoTabWid"> 
     <input type="file" name="userPhoto" id="" placeholder="" style="border:none;width:100%;"> 
    </div> 
    </div> 
    <div class="modal-footer"> 
    </br><!--<a class="cancelPoup">Cancel</a>&nbsp; 
    <button class="redButton">Create</button>--> 
    <input type="submit" value="Upload Image" name="submit"> 
    </div> 
</form> 

и я хочу, чтобы загрузить выбранный файл пользователя в MongoDB или локальный диск, пожалуйста, помогите мне из этой проблемы?

Это указание как файл загружается в качестве результата, [, length]] [, encoding]). multer «

ответ

0

Пожалуйста, будьте более конкретным, на чем проблема, с которой вы сталкиваетесь с этим кодом. Код кажется прекрасным для меня. Вы могли загрузить файл в ./uploads? Я предполагаю, что вы хотите сохранить информацию о файлах и не физический файл загрузки (REQ, Рез, функция (ERR) { если (ERR) { возвращение res.end() "Ошибка при загрузке файла.";} // Здесь вы можете ввести код для сохранения данных файла в db с объектами req.file или req.files res.end («Файл загружен»); }); Кроме того, убедитесь, что ваша папка загрузок создана до того, как вы назовете сообщение. Согласно документам, multer не создает указанную папку, если она еще не существовала. (Удивительно, что она терпит неудачу и дает сообщение об успешном завершении)

+0

Я хочу загрузить физический файл в ./uploads, и я получаю сообщение об успешном выполнении, например, файл загружается, но не загружается в папку ./uploads. И я создал папку uploads в моей рабочей области – Rapid

1

Вы всегда можете использовать mongoose для сохранения информации о файле. подготовить схему для схемы и выполнить ее

//call for the mongoose schema 
//example :var emp = require('../models/employees.js'); 
app.post('/api/photo',function(req,res){ 
upload(req,res,function(err) { 
if(err) { 
    return res.end("Error uploading file."); 
} 
var upl = new emp({picture: req.file.originalname});//creating object the mongoose schema 
upl.save(function(err,docs) { 
     if (err) { 
      console.log(err); 
     } 
     res.json(docs); 
    }); 
res.end("File is uploaded"); 

}); });

 Смежные вопросы

  • Нет связанных вопросов^_^