/** * * 获取文件类型 */ public function getType() { if (!$this->filetype) { $image_mime = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/bmp', 'image/x-ms-bmp', 'image/x-bmp', 'image/vnd.wap.wbmp', 'image/tiff', 'image/vnd.microsoft.icon'); $mime = $this->getMIME(); if ($mime == 'application/octet-stream') { if (@getimagesize($this->tmpfile)) { $this->filetype = self::FILETYPE_IMAGE; } } if (!$this->filetype) { if (in_array($mime, $image_mime)) { $this->filetype = self::FILETYPE_IMAGE; } elseif ($mime && preg_match('#^audio/|^video/#', $mime)) { if (extension_loaded('ffmpeg') && false) { $movie = new ffmpeg_movie($this->tmpfile); if ($movie->hasVideo()) { $this->filetype = self::FILETYPE_VIDEO; } else { $this->filetype = self::FILETYPE_AUDIO; } } else { require_once FS_ROOT . 'include/ffmpeg/FFmpegAutoloader.php'; $ffmpegOutput = new FFmpegOutputProvider(Core::config('ffmpeg_binary')); $ffmpeMovie = new FFmpegMovie($this->tmpfile, $ffmpegOutput, Core::config('ffmpeg_binary')); if ($ffmpeMovie->hasVideo()) { $this->filetype = self::FILETYPE_VIDEO; } else { $this->filetype = self::FILETYPE_AUDIO; } //$this->filetype = self::FILETYPE_AUDIO| self::FILETYPE_VIDEO; } } else { $this->filetype = self::FILETYPE_UNDEFINED; } } } return $this->filetype; }