PHP 可以读取元文件吗?

我用 PHP 和客户端 Javascript 构建了一个 parsial 上传。

流动

  1. 将文件转换为base64,这样我就得到了base64字符串

  2. 将base64字符串切成几块

  3. 发布每件作品和上传处理程序的位置

  4. 上传处理程序将发布数据作为一个文件放在同一个文件夹中

  5. 如果迭代停止,JS 告诉上传处理程序构建代码

  6. 然后上传处理程序将所有文件作为一个文件,然后将 base64 解码为一个新文件

问题

构建完成后,我无法读取与文件上传中的 $_FILES 相同的结果文件。所以我无法得到:

  1. 原始尺寸

  2. 原始扩展

我想知道PHP可以读取有关文件的信息吗?

我希望有这样的功能(不是实际功能)

$file  = read_the_file('/path/to/file');
$metas = read_meta_file($file);

然后你可以得到什么类型的文件和其他一些数据。

笔记

目前,我使用的文件是视频文件。


幕布斯6054654
浏览 114回答 3
3回答

莫回无

但是您需要将该扩展名存储在某个位置 - 例如在 ID3 标签中的视频文件中(并使用 lib https://github.com/JamesHeinrich/getID3/来提取它)。这很可能不是您想要做的,因为您需要在前端编辑文件。另一种选择是使用mime_content_type(文件完成上传后)- 对于“mp4”文件,即使没有扩展名,它也会为您提供“video/mp4”,对于 mkv “video/x-matroska”。等等基于 mime 类型,您可以再次构建扩展 - 例如:$exts = ["video/x-matroska" => "mkv","video/mp4" => "mp4"];接着:$extension = $exts[mime_content_type("..path..to..file")];(当然首先要检查条目是否存在)。扩展本身不存储在任何元数据中,因此您不能简单地提取它。在拥有 mime 类型的同时,您还可以使用任何流行的库 - 例如: https ://github.com/ralouphie/mimey将 mime 类型转换为扩展名。要获得文件大小,最好简单地使用 filesize 函数。另一种选择是简单地将原始文件名与最后一个帖子(告诉后端文件已完成的那个)一起发送:可能是最可靠的一个。

凤凰求蛊

您可以借助名为pathinfo的 php 函数获取有关文件的信息如何使用pathinfo:print_r(pathinfo("/path_of_file/123.txt"));它将返回.....Array ( [dirname] => /path_of_file [basename] => 123.txt [extension] => txt )2.可以通过名为filesize的php函数获取文件的大小如何使用文件大小:echo filesize("123.txt");它将以字节为单位返回文件的大小。I hope, This will help you. Good Luck.

回首忆惘然

您可以使用pathinfo php 函数对于文件大小,您可以使用filesize函数要从 base_64 获取扩展名,您可以使用finfo_buffer函数echo finfo_buffer(finfo_open(), $base64, FILEINFO_MIME_TYPE);
打开App,查看更多内容
随时随地看视频慕课网APP