Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 轻松区分节点中的视频文件和图像文件_Node.js_Html_Image_Video - Fatal编程技术网

Node.js 轻松区分节点中的视频文件和图像文件

Node.js 轻松区分节点中的视频文件和图像文件,node.js,html,image,video,Node.js,Html,Image,Video,我正在建立一个项目,人们可以上传文件,然后我想在浏览器中显示这些文件,人们可以在其中进行交互(投票、评论等) 然而,这意味着我需要根据视频或图像的格式以编程方式构建html。有没有办法将文件(或文件名)输入到库中,并确定是否需要在视频元素或图像元素中显示它?即使是视频格式与图像格式的列表也会有所帮助,但我还没有看到任何与此相关的内容。没有任何模块能够可靠地确定文件类型。用户可以更改文件的扩展名,甚至更改文件的幻数,以混淆文件。唯一可靠的方法是尝试将文件传递给某个图像/视频转码器,让它判断格式是否

我正在建立一个项目,人们可以上传文件,然后我想在浏览器中显示这些文件,人们可以在其中进行交互(投票、评论等)


然而,这意味着我需要根据视频或图像的格式以编程方式构建html。有没有办法将文件(或文件名)输入到库中,并确定是否需要在视频元素或图像元素中显示它?即使是视频格式与图像格式的列表也会有所帮助,但我还没有看到任何与此相关的内容。

没有任何模块能够可靠地确定文件类型。用户可以更改文件的扩展名,甚至更改文件的幻数,以混淆文件。唯一可靠的方法是尝试将文件传递给某个图像/视频转码器,让它判断格式是否无效或出错。这样,您就知道您使用的是已知格式,因为所有文件都被转码为特定的扩展名。可以是mp4或png。我建议对视频使用
handbrake
,对图像使用
sharp
。将NPM链接保留在下面:


您正在打开一个相当大的主题,尝试查看所有视频格式。。。支持也因浏览器等不同而有所不同,但图像更容易。在我脑海中,图像扩展名:
jpg
/
jpeg
png
gif
svg
将占绝大多数。此外,如果使用
input type=“file”
上传,您可以筛选它将选择的文件类型。。。多谢。是否有明确的图像/音频/视频格式列表?或者只是一个最常用的列表?遗憾的是,不是所有可用编解码器/扩展的专家。我在一个项目中使用了上述技术,效果很好。我将上传的文件直接传递到转码器,如果出现错误,我只需将错误返回到我的网页前端(不支持的文件格式)。这样,我就可以让sharp模块开发人员尝试将图像转换为PNG,并为我的web应用调整图像大小,如果不支持该文件,则由他们决定。类似的事情也应该发生在你的视频上。您不希望为用户提供10种不同的文件类型,以便在浏览器上观看。服务器应该有特定的编解码器来存储文件。