É possível ler apenas a primeira linha de um arquivo com ActionScript?
-
03-07-2019 - |
Pergunta
Eu tenho um site baseado em PHP onde nós permitem aos usuários fazer upload de um arquivo de texto separado por vírgulas de dados a ser importado por alguns scripts do lado do servidor. No entanto, às vezes precisamos ajustar a ordem dos dados que são enviados coluna, e seria extremamente útil se pudéssemos identificar as colunas no arquivo CSV antes o carregamento ocorre.
A única maneira que eu posso pensar para acesso de arquivo local I / O é com um plugin do Java ou um script flash embutido, e eu prefiro muito mais o último. Existe alguma maneira in Flash para selecionar um arquivo de texto no disco rígido local, e, em seguida, usar o ActionScript para examinar única a primeira linha (que corresponde aos títulos de coluna, neste exemplo)?
Às vezes, esses arquivos podem ser> 100 MB, então carregar a coisa toda na memória e, em seguida, jogando fora todos, mas a primeira linha provavelmente não iria trabalhar de forma eficiente, então eu estou querendo saber se há sintaxe no ActionScript para limitar a quantidade de leitura de dados em cada vez.
Solução
Flash não têm acesso ao sistema de arquivos local, exceto para fazer um upload do arquivo para o servidor.
Eu acho que suas opções são:
- Processar a classe no lado do cliente com Java (trivial), usando um applet. No entanto, como justamente afirmar o usuário precisa conceder permissões para o applet.
- Fornecer um pequeno aplicativo do lado do cliente escrito com o Adobe Air, usando o sistema de arquivos API .
Outras dicas
Você não pode apenas usar o PHP para agarrar a primeira linha do seu arquivo CSV e, em seguida, alimentar essa linha de dados para flash?
Eu poderia estar completamente errado aqui, mas parece que a pessoa fazendo esta pergunta tenha feito algo semelhante para o efeito com o seu código PHP
Utilizando PHP para tomar a primeira linha de um arquivo CSV e criar uma tabela MySQL com os dados
A versão atual do Flash player só é capaz de selecionar um arquivo para upload para um servidor, exigindo todo o processamento para ser do lado do servidor. A próxima versão do player no entanto, Flash 10 pode ler arquivos locais sem fazer a viagem de volta para um servidor.
Eu não usei essa funcionalidade eu (ainda) por isso não tenho certeza se é possível ler apenas uma parte do arquivo, mas que se torna um problema menor se é tudo local.
Flash 10 está atualmente em algum tipo de beta de pré-lançamento, mas ele vai lançar em breve eu acho.
EDIT: Em breve, na verdade, apenas serra isso no meu leitor de feeds
Flash Player 10, a versão atual (liberado apenas 2 dias atrás), permite que você acesse arquivos locais. Você pode encontrar um exemplo aqui:
http://www.mikechambers.com/blog/2008/08/20/reading-and-writing-local-files-in-flash-player-10/
Hoewver, você tem que carregar o arquivo inteiro.
Se você usar um SWF em execução no Adobe AIR, então você pode ler apenas a primeira linha (que tem APIs de arquivos mais avançados).
A melhor solução é, provavelmente, para criar uma API PHP que retorna apenas a primeira linha de dados.
câmaras microfone
mesh@adobe.com