php - type - tipo mime para aspx
Encuentra el tipo de archivo Mime o url usando php para todos los formatos de archivo (4)
Utilice file_info
en PHP con el indicador FILEINFO_MIME_TYPE
como parámetro.
[Ejemplo tomado como es del Manual de PHP]
<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "/n";
}
finfo_close($finfo);
?>
OUTPUT :
text/html
image/gif
application/vnd.ms-excel
EDIT :
Debes habilitar la extensión en tu PHP.ini
;extension=php_fileinfo.dll
Elimine el punto y coma de esa línea y reinicie su servidor web y listo.
Installation Doc.
Hola, estoy buscando la mejor manera de averiguar el tipo de mime en php para cualquier archivo local o url. He intentado la función mime_content_type de php pero, como está en desuso, estoy buscando una mejor solución en php para todos los formatos de archivo.
mime_content_type — Detect MIME Content-type for a file ***(deprecated)***
Ya he probado a continuación la función
echo ''welcome'';
if (function_exists(''finfo_open'')) {
echo ''testing'';
$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, "http://4images.in/wp-content/uploads/2013/12/Siberian-Tiger-Running-Through-Snow-Tom-Brakefield-Getty-Images-200353826-001.jpg");
finfo_close($finfo);
echo $mimetype;
}
El código anterior no funciona para mí, solo welcome
para la salida. No estoy seguro de si estoy haciendo algo mal aquí.
El código siguiente funciona de alguna manera en mi local, pero no funciona para las URL.
$file = ''./apache_pb2.png'';
$file_info = new finfo(FILEINFO_MIME); // object oriented approach!
$mime_type = $file_info->buffer(file_get_contents($file)); // e.g. gives "image/jpeg"
$mime = explode('';'', $mime_type);
print $mime[0];
¿Hay algún trabajo en torno al cual trabajar para ambos (url y local)? ¿Cuál es la mejor práctica para establecer el tipo de mime para todos los contenidos (imagen, video, archivo, etc.) que no sea la función mime_content_type en php? También se recomienda utilizar el función mime_content_type en php, ¿es la mejor práctica en php?
$type = image_type_to_mime_type(exif_imagetype($file));
Después de probar todas estas soluciones anteriores, eso es lo que uso:
$command = "file -i {$filename}";
$mimeTypeArr = shell_exec($command);
Este comando devuelve la línea siguiente:
filename: mime_type
Después de tener esto, exploto y obtengo lo que necesito.
$mimeTypeArr = shell_exec($command);
$mimeTypeArr = explode('':'', $mimeTypeArr);
$mimeType = trim($mimeTypeArr[1]);
¡Espero eso ayude!
Encontré la respuesta,
Para encontrar la extensión del archivo de la mejor manera, use path_info para los archivos locales y la url.
$info = pathinfo($filename);
$basename = $info[''basename''];
$ext = $info[''extension''];
crear una matriz para el tipo de mimo
$mimeTypes = array("mp4" => "video/mp4");//
-> Vea el Ejemplo aquí y aquí
//get the mime type for file
$type = isset($this->mime_types[$ext]) ? $this->mime_types[$ext] : "application/octet-stream";
El código anterior funciona tanto para archivos url como locales.
Nota :
Aquellos que luchan con CDN mp4 video mime tipo video / mp4 issue - He hecho un cambio en mi archivo class.s3.php -> en mime_type [] array y también he verificado con la función putObject ().
La configuración del tipo MIME se realiza siempre en el lado de codificación y no en AWS S3. Necesitamos utilizar
AWS PHP Class file or sdk
para realizar la manipulación en tipo MIME o realizar los cambios necesarios en el archivo de la clase principal (por ejemplo, class.s3. php)