如何使用fs.ReadStream和fs.WritesReam发送和接收视频(.mp4)文件[从客户端到服务器,反之亦然



   ## Here is my Unsucessfull approach  ##
----------
> Server side code
> Recieve Video stream from client and save it in .mp4 format
var express = require('express');
var app = global.app = exports.app = express();
var fs = require('fs');
app.post('/video_main', (req, res, next) => {
  console.log(req)
  const video_stream = fs.createWriteStream('vde.mp4')
  req.pipe(video_stream)
  //save the video stream to vde.mp4
})
app.use('*', function(req, res, next) {
  return res.status(404).json({
    'status': 'FAILURE',
    'message': 'Not found'
  })
})
app.listen('3000');
// server listening on http://localhost:3000/
----------
> Client side  code
> send video stream to server
const request = require('request')
const fs = require('fs')
var readablestream = fs.createReadStream('SampleVideo_1280x720_1mb.mp4')
const write = fs.createWriteStream('test.mp4');
const r = request.post("http://localhost:3000/video_main");
r.pipe(readablestream);
/*
*/
   

代码在客户端的主要错误应为

readablestream.pipe(r);

由于您将数据从readableStream输送到请求中。

对于将来的参考,您应始终遵循大会:

readstream.pipe(writestream);

我通过分析此github上的代码来弄清楚这一点, 通过HTML的文件传输的实现非常好:

https://gist.github.com/alepez/9205394

最新更新