15use Wikimedia\Mime\MimeAnalyzer;
27 $this->magic = $magic;
59 $info[
'fileExists'] = $fsFile->exists();
60 if ( $info[
'fileExists'] ) {
61 $info[
'size'] = $fsFile->getSize();
62 $info[
'sha1'] = $fsFile->getSha1Base36();
64 # MIME type according to file contents
65 $info[
'file-mime'] = $this->magic->guessMimeType(
$path,
false );
69 # XXX: MimeAnalyzer::improveTypeFromExtension() may return null (T253483, T413926).
70 # Unclear if callers of this method expect that.
71 $info[
'mime'] = $this->magic->improveTypeFromExtension( $info[
'file-mime'], $ext );
73 [ $info[
'major_mime'], $info[
'minor_mime'] ] = File::splitMime( $info[
'mime'] );
74 $info[
'media_type'] = $this->magic->getMediaType(
$path, $info[
'mime'] );
76 # Height, width and metadata
77 $handler = $info[
'mime'] !==
null ? MediaHandler::getHandler( $info[
'mime'] ) :
null;
79 $sizeAndMetadata = $handler->getSizeAndMetadataWithFallback( $fsFile,
$path );
80 if ( $sizeAndMetadata ) {
81 $info = $sizeAndMetadata + $info;
110 return FSFile::placeholderProps() + [
121class_alias( MWFileProps::class,
'MWFileProps' );