Pregunta

Tengo un sitio basado en PHP donde permitimos que los usuarios carguen un archivo de texto de datos separados por comas para ser importados por algunos scripts del lado del servidor. Sin embargo, a veces necesitamos ajustar el orden de las columnas de los datos que se cargan, y sería muy útil si pudiéramos identificar las columnas en el archivo CSV antes que se realice la carga.

La única forma en la que puedo pensar para acceder a la E / S de archivos locales es con un complemento de Java o un script Flash incrustado, y prefiero este último. ¿Hay alguna manera en Flash para seleccionar un archivo de texto en el disco duro local y luego usar ActionScript para examinar solo la primera línea (que corresponde a los encabezados de las columnas, en este ejemplo)?

A veces, estos archivos pueden ser > 100 MB, por lo que cargar todo el contenido en la memoria y luego tirar todos menos la primera línea probablemente no funcionará de manera eficiente, por lo que me pregunto si hay sintaxis en ActionScript para limitar la cantidad de datos leídos a la vez.

¿Fue útil?

Solución

Las películas Flash no tienen acceso al sistema de archivos local, excepto para realizar una carga de archivos en el servidor.

Creo que tus opciones son:

  1. Procese la clase en el lado del cliente con Java (trivial), usando un applet. Sin embargo, como bien afirma, el usuario deberá otorgar permisos al applet.
  2. Proporcione una pequeña aplicación del lado del cliente escrita con Adobe Air, utilizando API del sistema de archivos .

Otros consejos

¿No podría simplemente usar PHP para capturar la primera línea de su archivo CSV y luego alimentar esa línea de datos para flashear?

Podría estar completamente equivocado aquí, pero parece que la persona que hace esta pregunta ha hecho algo similar a ese efecto con su código PHP

Usar PHP para tomar la primera línea de un archivo CSV y crear una tabla MySQL con los datos

La versión actual de Flash Player solo puede seleccionar un archivo para cargar en un servidor, lo que requiere que todo el procesamiento sea del lado del servidor. Sin embargo, la próxima versión del reproductor, Flash 10 puede leer archivos locales sin hacer el viaje de ida y vuelta a un servidor.

No he usado esta funcionalidad (todavía), así que no estoy seguro de que sea posible leer solo una parte del archivo, pero eso no es un problema si todo es local.

Flash 10 se encuentra actualmente en algún tipo de versión beta preliminar, pero creo que pronto se lanzará.

EDITAR: Pronto, acabo de ver esto en mi lector de feeds

Flash Player 10, la versión de envío actual (recién lanzada hace 2 días), le permite acceder a los archivos locales. Puedes encontrar un ejemplo aquí:

http://www.mikechambers.com/blog/2008/08/20/reading-and-writing-local-files-in-flash-player-10/

Hoewver, debes cargar el archivo completo.

Si usa un SWF que se ejecuta en Adobe AIR, entonces puede leer solo la primera línea (tiene API de archivos más avanzadas).

Probablemente, la mejor solución sea crear una API de PHP que devuelva solo la primera fila de datos.

cámaras de micrófono

mesh@adobe.com

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top