Tengo un archivo llamado 94bf663a100e848fb599209af8cdc2b5.wmv. Sé que pathinfo
no me dará la extensión si solo uso el nombre 94bf663a100e848fb599209af8cdc2b5. Creo que glob
es solo para verificar si existe un archivo. Entonces, ¿es posible obtener una extensión de archivo simplemente conociendo el nombre del archivo (94bf663a100e848fb599209af8cdc2b5)?¿Es posible obtener una extensión de archivo sin saberlo?
Respuesta
Como el ejemplo de la php glob manual page sugiere, glob
hace no simplemente comprobar si el archivo existe, devuelve todos los archivos que coincide con la expresión.
Aquí es una modificación del ejemplo de that page para sus necesidades:
$name = "94bf663a100e848fb599209af8cdc2b5";
$matching = glob($name . ".*");
$info = pathinfo($matching[0]);
$ext = $info['extension'];
Esto supone que hay una (y sólo una) archivo con ese nombre (con cualquier extensión), pero usted debe ser capaz para modificarlo si el archivo puede no existir, o puede haber varios archivos con el mismo nombre y diferentes extensiones.
Funciona rocker. Justo lo que estaba buscando más o menos. Cada nombre de archivo es único, así que creo que glob sería suficiente. – Scarface
La función finfo_file()
inspeccionará la firma de bytes de un archivo para devolver su tipo MIME. A partir de ahí, puede deducir la extensión de archivo correcta.
// Adapted from the PHP docs
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
echo finfo_file($finfo, $filename);
finfo_close($finfo);
Esto supone que la extensión coincide con el tipo de mimo. Y falla para variantes como '.jpeg' vs' .jpg'. También requiere algún tipo de tabla de búsqueda con extensiones de archivo. –
fileinfo no funciona sin la extensión. Acabo de probarlo. $ filename =/archivo1/archivo2/94bf663a100e848fb599209af8cdc2b5 – Scarface
fileinfo funciona independientemente de la extensión que tenga un archivo o incluso si el archivo no tiene extensión. Esta es en realidad la forma preferida de encontrar/validar el tipo de archivo. Si bien no sé por qué está tratando de obtener la extensión, si es para validación, cualquier cosa que no use heurística para validar el tipo abrirá un agujero de seguridad en el sistema. – Mamsaac
Los primeros caracteres del archivo (binario) generalmente le darán algún tipo de pista sobre el tipo de archivo.
Pruébelo abriendo algunos archivos binarios (rar, zip, mp3, etc.) en el Bloc de notas.
Sí, pero estoy tratando de obtener la extensión en php de una manera eficiente. – Scarface
Pruebe filetype()
o mime_content_type()
funcione en php ... pase la ruta del archivo devuelve el tipo de archivo.
- 1. eliminación de la extensión de archivo sin saberlo
- 2. Obtener extensión del archivo sin proporcionar extensión en la ruta
- 3. ¿Es posible hacer que AVURLAsset funcione sin una extensión de archivo?
- 4. nombre de archivo sin extensión
- 5. ¿Es posible obtener RSS Archivo
- 6. ¿Es posible cargar una extensión desde la interfaz PHP cli, sin modificar el archivo ini?
- 7. obtener extensión de archivo (editar)
- 8. Node.js obtener extensión de archivo
- 9. Obtener nombre del archivo sin la extensión en Python
- 10. Obtener el nombre del archivo sin extensión en matlab
- 11. Regex: ¿Obtener nombre de archivo sin extensión en una sola toma?
- 12. Obtener nombre de archivo y extensión desde una ruta absoluta
- 13. Carrierwave cómo obtener la extensión de archivo
- 14. ¿Es posible refactorizar este método de extensión?
- 15. ¿Es posible obtener reclamos de ACS sin editar web.config?
- 16. ¿Es posible construir una extensión de Chrome utilizando Java?
- 17. Tipo de archivo - Obtener la extensión original
- 18. Obtener ImageFormat desde la extensión de archivo
- 19. ¿Cómo obtener la extensión de archivo de una url?
- 20. ¿Cómo obtener el ícono para una extensión de archivo o tipo de archivo sin crear un archivo temporal?
- 21. Obtener el icono de una extensión dada
- 22. Cómo obtener un nombre de archivo sin extensión desde la ruta del archivo en Ruby
- 23. ¿Es posible importar un archivo MX sin evaluar los contenidos?
- 24. ¿Es posible obtener un número de versión del archivo XAP
- 25. ¿Es posible descomprimir una tupla sin usar variables?
- 26. ¿Es posible enviar una matriz con la extensión Postman Chrome?
- 27. ¿Es posible obtener texto pegado sin utilizar la función setTimeout()?
- 28. ¿Es posible compilar un archivo java sin proporcionar sus dependencias?
- 29. Obtener la extensión del archivo (nombre base?)
- 30. ¿Es posible anteponer datos a un archivo sin reescribir?
jajajaja eso es bueno. No puedo creer que hayas podido hacer esa referencia tan rápido. – Scarface
Tenga en cuenta que cualquier extensión forma parte del nombre del archivo: puede tener archivos llamados 'foo',' foo.bar', 'foo.bar.tar',' foo.bar.tar.gz', 'foo.bar .tar.gz.sig', y todos se refieren a diferentes archivos. (Ignorar temporalmente los archivos con enlaces múltiples). Si no conoce ninguna extensión, en realidad no tiene el nombre del archivo. Esta distinción es importante, ya que es por qué [Michael] (http://stackoverflow.com/questions/6615039) y las respuestas de Switz (ahora eliminadas) no funcionan para usted. – sarnold