Tengo un formulario que permite a un usuario subir un archivo al servidor. ¿Cómo puedo validar que el archivo cargado es, de hecho, el formato esperado (CSV, o al menos validar que es un archivo de texto) en ColdFusion 8?¿Cómo puedo determinar si un archivo cargado es un archivo CSV válido, o al menos texto, en ColdFusion 8?
Respuesta
Para formatos simples como CSV, simplemente compruébalo, por ejemplo a través de regex.
<cffile action="read" file="#uploadedFile#" variable="contents" charset="UTF-8">
<cfset LooksLikeCSV = REFind("^([^;]*;)+[^;]*$", contents)>
Puede colocar comprobaciones adicionales con respecto a los límites de tamaño de archivo o caracteres prohibidos.
Para otros formatos de archivo, puede verificar header signatures que aparecen en los primeros pocos bytes del archivo.
Incluso podría escribir un analizador completo para su formato de archivo esperado - para la validación de CSV, podría hacer un ListToArray()
en CR/LF y verificar cada línea individualmente contra una expresión regular. XML también debería funcionar de manera sencilla: solo intenta pasarlo al XmlParse()
. Los formatos binarios como las imágenes son un poco más difíciles, pero las bibliotecas también existen allí.
Esto realmente parece una buena idea. Voy a intentarlo. –
No sé si puede ayudar, pero Ben Nadel escribió excellents mensajes sobre CSV:
http://www.bennadel.com/blog/483-Parsing-CSV-Data-Using-ColdFusion.htm
http://www.bennadel.com/blog/501-Parsing-CSV-Values-In-To-A-ColdFusion-Query.htm
Sí, he leído esos artículos, gran admirador de Ben's. No es realmente lo que estoy buscando. Gracias. –
Creo que es tan simple como que especifica el valor de aceptar en cffile ... Desafortunadamente, los documentos CF8 no especifican el valor como parte de la información para cffile ... Está bajo administración de archivos ...
<cffile action=”upload” filefield=”filename” destination=”#destination#” accept=”text/csv”>
- 1. ¿Cómo puedo determinar si un archivo es un archivo PDF?
- 2. ¿Cómo comprobar si un archivo es válido UTF-8?
- 3. Determinar si un archivo es un duplicado
- 4. ¿Cómo puedo averiguar si un archivo es un archivo o directorio si no existe?
- 5. ¿Cómo puedo determinar si un archivo es un archivo de imagen en .NET?
- 6. ¿Cómo puedo determinar si un archivo está vacío?
- 7. ¿Cómo puedo determinar si un manejador de archivo Perl es un manejador de lectura o escritura?
- 8. Cómo escribir un cheque en python para ver si el archivo es válido UTF-8?
- 9. Convertir un archivo cargado en un archivo
- 10. ¿Cómo determinar si un archivo abierto es un socket o un conducto?
- 11. Python: determinar si un objeto es similar a un archivo
- 12. ¿Cómo puedo determinar cuándo un identificador de ventana es válido?
- 13. ¿Cómo puedo determinar mediante programación si un archivo MP3 es CBR o VBR? (Preferiblemente usando C#)
- 14. ¿Cómo determinar si un descriptor de archivo es buscable?
- 15. ¿Cómo puedo determinar si un archivo está bloqueado con VBS?
- 16. ¿Cómo puedo determinar que un archivo en particular es en realidad un archivo MP3?
- 17. Crear un archivo utf-8 csv en Python
- 18. ¿Cómo comprobar si un archivo .tar.gz de Unix es un archivo válido sin descomprimir?
- 19. Agregar un texto al archivo en Python
- 20. Ruby: Cómo determinar si el archivo que se lee es binario o texto
- 21. ¿Cómo puedo generar un archivo CSV (archivo de texto delimitado por comas) para descargar con ASP.NET?
- 22. Determinar si un archivo está abierto
- 23. Oracle cómo exportar consulta a un archivo de texto/csv
- 24. ¿La mejor manera de determinar si un nombre de dominio sería válido en un archivo "hosts"?
- 25. Determinar si una ruta dentro de un NSString es a un directorio, o un archivo?
- 26. Compruebe si un archivo PDF es válido (Python)
- 27. cómo comprobar si un archivo es un directorio o un archivo normal en python?
- 28. Determinar si un archivo ejecutable (o biblioteca) es de 32 o 64 bits (en Windows)
- 29. Determinar si un archivo ejecutable (o biblioteca) es 32 o 64 bit
- 30. ¿Cómo encontrar si un archivo es un exe?
Tendrá que usar Java y no parece ser un enfoque definitivo. Consulte esta pregunta: http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in-java – orangepips