Можно ли прочитать только первую строку файла с помощью Actionscript?

StackOverflow https://stackoverflow.com/questions/202922

Вопрос

У меня есть сайт на базе PHP, где мы разрешаем пользователям загружать текстовый файл данных, разделенный запятыми, для импорта некоторыми серверными скриптами.Однако иногда нам необходимо изменить порядок столбцов загружаемых данных, и было бы чрезвычайно полезно, если бы мы могли идентифицировать столбцы в файле CSV до того, как загрузка происходит.

Единственный способ, который я могу придумать для доступа к локальному файловому вводу-выводу, - это Java-плагин или встроенный Flash-скрипт, и я бы предпочел последнее.Есть ли какой-либо способ во Flash выбрать текстовый файл на локальном жестком диске, а затем использовать ActionScript для проверки Только первая строка (которая соответствует заголовкам столбцов в этом примере)?

Иногда размер этих файлов может составлять > 100 МБ, поэтому загрузка всего файла в память, а затем удаление всего, кроме первой строки, вероятно, не будет работать эффективно, поэтому мне интересно, есть ли в ActionScript синтаксис для ограничения объема данных, считываемых за раз.

Это было полезно?

Решение

Фильмы Flash не имеют доступа к локальной файловой системе, за исключением загрузки файла на сервер.

Я думаю, что у вас есть следующие варианты:

  1. Обработайте класс на стороне клиента с помощью Java (trivial), используя апплет.Однако, как вы справедливо утверждаете, пользователю необходимо будет предоставить разрешения апплету.
  2. Предоставьте небольшое клиентское приложение, написанное с помощью Adobe Air, используя API файловой системы.

Другие советы

Разве вы не могли бы просто использовать PHP для захвата первой строки вашего CSV-файла, а затем передать эту строку данных во flash?

Я могу здесь совершенно ошибаться, но похоже, что человек, задающий этот вопрос, сделал что-то похожее на этот эффект со своим PHP-кодом

Использование PHP для получения первой строки CSV-файла и создания таблицы MySQL с данными

Текущая версия Flash Player способна только выбирать файл для загрузки на сервер, требуя, чтобы вся обработка выполнялась на стороне сервера.Однако следующая версия плеера, Вспышка 10 может читать локальные файлы, не совершая обходной путь к серверу.

Я сам (пока) не использовал эту функциональность, поэтому я не уверен, возможно ли прочитать только часть файла, но это становится меньшей проблемой, если все это локально.

Flash 10 в настоящее время находится в своего рода предрелизной бета-версии, но, я думаю, она скоро выйдет.

Редактировать:Вскоре действительно, только что увидел это в моей ленте для чтения

Flash Player 10, текущая версия для доставки (выпущена всего 2 дня назад), позволяет вам получать доступ к локальным файлам.Вы можете найти пример здесь:

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

Hoewver, ты должен загрузить весь файл целиком.

Если вы используете SWF-файл, работающий в Adobe AIR, то вы можете прочитать только первую строку (в нем есть более продвинутые файловые API).

Вероятно, лучшим решением является создание PHP API, который возвращает только первую строку данных.

майк Чемберс

mesh@adobe.com

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top