javascript - 我可以为 HTML5 文件上传设置视频长度限制吗?

标签 javascript php node.js html

通过 HTML5 输入上传视频时,例如:

<input type="file" id="input">

我知道可以使用 PHP/Node.Js 设置文件大小限制。

有没有办法限制视频长度,而不是文件大小?

I.E:只允许用户上传时长不超过 15 秒的视频。

最佳答案

这是我发现的:

解决方案 1: 创建一个播放本地视频文件的视频元素,然后在其上运行 video.duration。

var vid = document.getElementById("myVideo");

function myFunction() { 
    alert(vid.duration);
} 

(function localFileVideoPlayer() {
	'use strict'
  var URL = window.URL || window.webkitURL
  var displayMessage = function (message, isError) {
    var element = document.querySelector('#message')
    element.innerHTML = message
    element.className = isError ? 'error' : 'info'
  }
  var playSelectedFile = function (event) {
    var file = this.files[0]
    var type = file.type
    var videoNode = document.querySelector('video')
    var canPlay = videoNode.canPlayType(type)
    if (canPlay === '') canPlay = 'no'
    var message = 'Can play type "' + type + '": ' + canPlay
    var isError = canPlay === 'no'
    displayMessage(message, isError)

    if (isError) {
      return
    }

    var fileURL = URL.createObjectURL(file)
    videoNode.src = fileURL
  }
  var inputNode = document.querySelector('input')
  inputNode.addEventListener('change', playSelectedFile, false)
})()
<h3>Step 1: Upload a video</h3>
<h3>Step 2: Get length</h3>
<h3>Step 3: ???</h3>
<h3>Step 4: Profit</h3>
<button onclick="myFunction()" type="button">Get video length</button>
<hr>
<div id="message"></div>
<input type="file" accept="video/*"/>
<video controls autoplay id="myVideo"></video>

解决方案 2: 使用 mediainfo.js https://mediainfo.js.org/

关于javascript - 我可以为 HTML5 文件上传设置视频长度限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37143491/

相关文章:

javascript - 在 Node.js 网络中使用 pipe()

javascript - 当文本区域为空时如何禁用链接?

javascript - 点击事件时从数据库获取价格

node.js - 使用从文件读取的字符串在 Typescript 中进行字符串插值

mysql - 发送后无法设置 header 返回 res.json

php - 阻止用户多次发帖

javascript - 运行 ChartEditor 后,setOptions() 不适用于 ChartWrapper 中的图表

javascript - 使用jquery对 Angular 线动态编号表列

PHP 电子表格 : First Row Bold

php - jQuery .load() 破坏加载到 html 正文中的 PHP 变量