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.

Foi útil?

Solução

filmes

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:

  1. 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.
  2. 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top