Не могли бы вы проверить ошибку в этом коде? (express, грозный, поток, видеоплеер) - PullRequest
0 голосов
/ 29 мая 2020

Я только что выполнил руководство от MDN и скорректировал его с помощью загруженного файла. Но я не могу знать, почему этот код показывает видеоплеер, который не воспроизводится. Это основано на express, node, и я использовал file = input для html, чтобы получить файл mp4.

exports.uploadVideo_post = function(req, res, next) {

  var form = new formidable.IncomingForm(); //uploaded mp4 file from html

  form.parse(req, function(err, fields, files){

  var file = files.video.path; //C:\\Users\\AppData\\Local\\Temp\\upload_11588e8cde2d371b85df29c6efc27569

  var fileName = file+".mp4";

  fs.rename(file, fileName, () => {

    var start;
    var end;
    const total = files.video.size;
    const range = req.headers.range;

      if (range) {
        var positions = range.replace(/bytes=/, "").split("-");
        end = positions[1] ? parseInt(positions[1], 10) : total - 1;
        start = parseInt(positions[0], 10);
   } else{
        start = 0;
        end = total - 1;
   }

      if (start == 0 && end == total -1){
        res.writeHead(200, {
        "Accept-Ranges" : "bytes",
        "Content-Range" : "bytes " + start + "-" + end + "/" + total,
                            "Content-Length" : total,
                            "Content-Type" : "video/mp4"
                        });

        createReadStream(fileName, { start, end }).pipe(res);
      } 
      else{
        res.writeHead(206, {
        "Accept-Ranges" : "bytes",
        "Content-Range" : "bytes " + start + "-" + end + "/" + total,
        "Content-Length" : end - start + 1,
        "Content-Type" : "video/mp4"
                        });        
      createReadStream(fileName, { start, end }).pipe(res);
                    }); }); }

спасибо, ребята.

...