Недавно я задал вопрос о сохранении файлов, загруженных через multer в mongodb. Я смог заставить это работать, но я не могу отобразить файл в своем index.ejs. Например, я загрузил музыкальный файл, и когда я попытался отобразить его в index.ejs, обернув звуковой тег вокруг пути, он показывает элементы управления аудио, но кнопка воспроизведения отключена, а значок тома имеет косую черту. Посмотрите мой код.Отображение файлов multer (music) в index.ejs
routes.js
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/');
},
filename: function (req, file, cb) {
var originalname = file.originalname;
var extension = originalname.split(".");
filename = Date.now() + '.' + extension[extension.length-1];
cb(null, filename);
}
});
router.post('/', multer({storage: storage, dest: './uploads/'}).single('uploads'), function(req,res){
var music = new Music ({
fieldname: req.file.fieldname,
originalname: req.file.originalname,
encoding: req.file.encoding,
mimetype: req.file.mimetype,
destination:req.file.destination,
filename: req.file.filename,
path: req.file.path,
size: req.file.size
})
music.save(function(err){
if (err){console.log(err)}
else {
res.redirect('/');
}
})
});
музыка модель
var mongoose = require('mongoose');
var musicSchema = new mongoose.Schema({
fieldname: String,
originalname: String,
encoding: String,
mimeptype: String,
destination: String,
filename: String,
path: String,
size: Number,
created_at: Date,
updated_at: Date
});
var Music = mongoose.model('Music', musicSchema);
module.exports = Music;
index.ejs
<form action="/" enctype="multipart/form-data" method="post">
<input type="text" name="title">
<input type="file" name="uploads">
<input type="submit" value="Uploads">
</form>
<% for(var i = 0; i < musics.length; i++){ %>
<p> <%= musics[i].originalname %> </p>
<audio autoplay="autoplay" controls="controls">
<audio controls="controls">
<source src="<%= musics[i].path %>"/>
</audio>
<%}%>
это данные в моей Монго дб
{ "_id" : ObjectId("576e27051ca343b201992472"), "created_at" : ISODate("2016-06-25T06:39:02.004Z"), "updated_at" : ISODate("2016-06-25T06:39:02.004Z"), "fieldname" : "uploads", "originalname" : "Trance - Tricky Tricky.mp3", "encoding" : "7bit", "destination" : "./uploads/", "filename" : "1466836741963.mp3", "path" : "uploads/1466836741963.mp3", "size" : 3818213, "__v" : 0 }
Я попытался выключить автозапуск. теперь он отображается в index.ejs, но он не воспроизводит песню. звуковые элементы управления отображаются, но кнопка воспроизведения отключена, а значок тома имеет косую черту. – Bill