如何使用 fs.readStream 和 fs.writesream 发送和接收视频 ( .mp4 ) 文件 [从客户端到服务器,反之亦然] [在 Node Js 中]?
How to use fs.readStream and fs.writesream to send and recieve Video ( .mp4 ) files [from client to server or vice versa ] [in Node Js]?
## 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);
因为您正在将可读流中的数据通过管道传输到请求中。
为了将来参考,您应该始终遵循以下约定:
readstream.pipe(writestream);
I figured this out by analyzing the code on this github, which has
pretty nice implementation of file transfer over html:
## 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);
因为您正在将可读流中的数据通过管道传输到请求中。
为了将来参考,您应该始终遵循以下约定:
readstream.pipe(writestream);
I figured this out by analyzing the code on this github, which has pretty nice implementation of file transfer over html: