Nodejs multer表示在表单上传后向客户端显示文件

时间:2016-11-07 03:33:39

标签: node.js express upload display multer

我正在尝试在提交表单后使用工具(标题中列出)显示视频文件:

const 

 express = require('express'),
 server = express(),
 // SERVER MODULE/DEPENDENCY

 multer = require("multer"),
 // UPLOAD DEPENDENCY

 fs = require('fs'),
 // FOR THE VIDEO UPLOADS  

 PORT = process.env.PORT || 3000,
 //USE AUTO ASSIGNED HEROKU PORT or 3000 for local. DO NOT REMOVE PROCESS.ENV.PORT

 bodyParser = require('body-parser'),
 //NEEDED FOR OUTSIDE JSON REQUESTS

 _ = require('underscore'),
 //FOR FILTERING OBJECTS AND OTHER TYPES OF DATA

 storage = multer.diskStorage({
    destination:function(req, file, callback){
           callback(null, './video_uploads');    
    },

    filename: function(req, file, callback){
           callback(null, file.fieldname + '-' + Date.now());
    } 
 });
 // Video Upload on Multer Dependency 

const upload = multer({ storage: storage}).single('video_upload');


server.use(bodyParser.json()); 
server.use(express.static(__dirname + '/public'));  // 




 server.post('/register.html', function(req, res){
 res.sendFile(__dirname + '/public/register.html');
});


server.post('/video_upload', function(req, res){
 upload(req, res, function(err){
    if(err){
        return res.end('Error uploading file.');
    }

    else{
        res.sendFile('req.file');
    }

    res.end(); 

 });  
});

上传工作正常,但我试图弄清楚如何发送上传的文件 上传后回到前端。

我有一个

    "<div id="resume-video-player"></div>"

我想在上传完成后从客户端填写以自动播放上传的视频。我是否需要与Jquery或socket.io进行通信才能在此进行通信?我尝试使用res.sendfile进行实验,但是我得到的是一个错误的加载资源连接被拒绝。

感谢。

1 个答案:

答案 0 :(得分:0)

视频的完整网址为

var url="PATH"+req.file.filename

将此信息发送给您的客户

res.json(url)

并在您的视频标记中将src设置为使用jQuery的url