使用php提取文件的元数据

使用php提取文件的元数据,php,javascript,image,video,metadata,Php,Javascript,Image,Video,Metadata,现在有很多文件格式(音频、视频、图像、文本)。我希望编写一个php代码,可以获得文件的元数据,而不考虑其格式 要获取基本元数据(文件名、文件大小、文件类型和上次修改日期),可以使用文件系统API: <input type="file" id="files" name="files[]" multiple /> <output id="list"></output> <script> function handleFileSelect(evt)

现在有很多文件格式(音频、视频、图像、文本)。我希望编写一个php代码,可以获得文件的元数据,而不考虑其格式

要获取基本元数据(文件名、文件大小、文件类型和上次修改日期),可以使用文件系统API:

<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<script>
  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // files is a FileList of File objects. List some properties.
    var output = [];
    for (var i = 0, f; f = files[i]; i++) {
    output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
                 f.size, ' bytes, last modified: ',
                 f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
                 '</li>');
    }
    document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
  }
  document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>
如果可能的话,我甚至希望得到地理标记数据

同样,对于视频和音频类型的文件,我希望获得:

  • 比特率(音频和视频)
  • 持续时间
  • 文件创建日期
  • 评论
  • 框架尺寸等

是否有任何phpjavascript代码可以直接为我执行此操作

不,没有这样的事您必须编写自己的代码,因为音频和视频有数千种格式、不同的编解码器、不同的压缩、模式等。您必须为每种格式编写自己的代码

例如,基于所使用的编解码器,视频AVI文件可能包含许多不同的元数据-取决于编解码器(有数百种)

可能您需要大量的经验和数月的编码和测试,但肯定没有快速的解决方案

你可能会找到一些基本的工具,但没有什么能在你可能使用的每种文件类型中找到所有可能的东西


如果我错了,您可以找到一些库来实现这一点,请共享,但逻辑上说您想要的并不存在。

对于许多媒体类型,有一个名为getid3()的类。 它使用起来非常简单,功能也非常强大。。你可以读写元数据到文件中

还有一些javascript类可以从文件中读取元数据,如exif、id3

搜索“使用javascript读取exif数据” 或“JavaScript ID3阅读器”

如果你有自己的服务器,你也可以使用一些命令行工具(你从php执行),这些工具可以读取exif、id3标记和新的mp4标记,比如atomicparsley

下面列出了使用getid3和php可以做的事情

Tag formats:
ID3v1 (v1.0 & v1.1)
ID3v2 (v2.2, v2.3 & v2.4)
APE tags (v1 & v2)
(Ogg) VorbisComment
Lyrics3 (v1 & v2)
IDivX
Lossy Audio-only formats:
MP3, MP2, MP1 (MPEG-1, layer III/II/I audio, including Fraunhofer, Xing and LAME VBR/CBR headers)
Ogg Vorbis
Musepack (versions SV4-SV8)
AAC & MP4
AC-3
DTS (including DTS-in-WAV)
RealAudio
VQF
Speex
Digital Speech Standard (DSS)
Audible Audiobooks
Lossless Audio-only formats:
WAV (including extended chunks such as BWF and CART)
AIFF
Monkey's Audio
FLAC & OggFLAC
LA (Lossless Audio)
OptimFROG
WavPack
TTA
LPAC (Lossless Predictive Audio Compressor)
Bonk
LiteWave
Shorten
RKAU
Apple Lossless Audio Codec
RealAudio Lossless
CD-audio (*.cda)
NeXT/Sun .au
Creative .voc
AVR (Audio Visual Research)
MIDI
Audio-Video formats:
AVI
Matroska (WebM)
ASF (ASF, Windows Media Audio (WMA), Windows Media Video (WMV))
MPEG-1 & MPEG-2
Quicktime (including MP4)
RealVideo
NSV (Nullsoft Streaming Video)
Graphic formats:
JPEG
PNG
GIF
BMP (Windows & OS/2)
TIFF
SWF (Flash)
PhotoCD
Data formats:
ZIP
TAR
GZIP
ISO 9660 (CD-ROM image)
CUEsheets (.cue)
SZIP
Metadata types:
EXIF (Exchangeable image file format)
IPTC
XMP (Adobe Extensible Metadata Platform)
Formats identified, but not parsed:
PDF
RAR
MS Office (.doc, .xls, etc)

这项工作需要绝对使用php吗?javascript能完全做到吗?这不是javascript的目的。这可能是可能的,但不要忘记,您的脚本必须检查本地计算机上的文件,或者下载并检查它。网上不可能。另一个问题是,它可能是一个巨大的脚本,这意味着用户必须在每次请求服务器时将其与您的页面一起下载。这可能会引起一些严重的问题。理论上这是可能的,但在现实生活中,你可能不想要那种头痛——简言之,这是一项永无止境的工作。我很好奇,你为什么需要这些信息?尝试用您需要的代码的更相关描述和用法更新您的问题。也许有人会建议一些你可以一起解决问题的方法。谢谢!。。。事实上,我正在构建一个web api来分析数据并提取其元数据,因为在未来,元数据将像任何东西一样占据主导地位。。。您需要服务器端脚本语言,如PHP,以尽可能快地完成这项工作。JavaScript只是客户端的帮助,可以创建更好、更友好的界面(并且可能被客户端禁用)。是否有必要完全使用php来完成这项工作?javascript能完全做到吗?搜索“用javascript读取exif数据”或“javascript ID3阅读器”javascript是客户端脚本。所以读取大文件并不容易。。。但是你可以用这个javascript类做非常简单的事情。。。我使用数码反射从相机中获取iso、光圈、焦距和其他重要信息。。我想你也可以得到地理位置。使用mp3类,u可以读取包括封面在内的大部分信息。它不像php(使用php类)那样稳定,或者使用命令行直接从服务器(使用php)执行。在我看来,最好的办法是使用命令行工具,并在上传文件后将收集到的信息保存到mysql db或json文件中。
Tag formats:
ID3v1 (v1.0 & v1.1)
ID3v2 (v2.2, v2.3 & v2.4)
APE tags (v1 & v2)
(Ogg) VorbisComment
Lyrics3 (v1 & v2)
IDivX
Lossy Audio-only formats:
MP3, MP2, MP1 (MPEG-1, layer III/II/I audio, including Fraunhofer, Xing and LAME VBR/CBR headers)
Ogg Vorbis
Musepack (versions SV4-SV8)
AAC & MP4
AC-3
DTS (including DTS-in-WAV)
RealAudio
VQF
Speex
Digital Speech Standard (DSS)
Audible Audiobooks
Lossless Audio-only formats:
WAV (including extended chunks such as BWF and CART)
AIFF
Monkey's Audio
FLAC & OggFLAC
LA (Lossless Audio)
OptimFROG
WavPack
TTA
LPAC (Lossless Predictive Audio Compressor)
Bonk
LiteWave
Shorten
RKAU
Apple Lossless Audio Codec
RealAudio Lossless
CD-audio (*.cda)
NeXT/Sun .au
Creative .voc
AVR (Audio Visual Research)
MIDI
Audio-Video formats:
AVI
Matroska (WebM)
ASF (ASF, Windows Media Audio (WMA), Windows Media Video (WMV))
MPEG-1 & MPEG-2
Quicktime (including MP4)
RealVideo
NSV (Nullsoft Streaming Video)
Graphic formats:
JPEG
PNG
GIF
BMP (Windows & OS/2)
TIFF
SWF (Flash)
PhotoCD
Data formats:
ZIP
TAR
GZIP
ISO 9660 (CD-ROM image)
CUEsheets (.cue)
SZIP
Metadata types:
EXIF (Exchangeable image file format)
IPTC
XMP (Adobe Extensible Metadata Platform)
Formats identified, but not parsed:
PDF
RAR
MS Office (.doc, .xls, etc)