是否可以使用Actionscript只读取文件的第一行?

时间:2008-10-14 21:27:25

标签: flash actionscript file-io upload csv

我有一个基于PHP的站点,我们允许用户上传由一些服务器端脚本导入的以逗号分隔的数据文本文件。但是,有时我们需要调整上传数据的列顺序,如果我们能够在上传之前识别CSV文件中的列,那将非常有用。

我能想到访问本地文件I / O的唯一方法是使用Java插件或嵌入式Flash脚本,我更喜欢后者。有没有办法在Flash中选择本地硬盘驱动器上的文本文件,然后使用ActionScript检查第一行(在此示例中对应于列标题)?

有时这些文件可能> 100 MB,因此将整个内容加载到内存中然后丢弃除第一行之外的所有内容可能无法有效工作,所以我想知道ActionScript中是否存在限制数量的语法一次读入的数据。

4 个答案:

答案 0 :(得分:1)

除了将文件上传到服务器之外,Flash影片无法访问本地文件系统。

我认为你的选择是:

  1. 使用applet在Java(简单)处理客户端类。但是,正确地断言用户需要向applet授予权限。
  2. 使用file system API
  3. 提供使用Adobe Air编写的小型客户端应用程序

答案 1 :(得分:1)

难道你不能只使用PHP抓取你的CSV文件的第一行然后将这行数据提供给flash吗?

我在这里可能完全错了,但看起来这个问这个问题的人用他们的PHP代码做了类似的事情

Using PHP to take the first line of a CSV file and create a MySQL Table with the data

答案 2 :(得分:0)

当前版本的Flash播放器只能选择要上传到服务器的文件,要求所有处理都是服务器端。然而,播放器的下一个版本Flash 10可以读取本地文件而无需往返服务器。

我自己还没有使用过这个功能,所以我不确定是否可以只读取文件的一部分,但如果它全部是本地的话,那就不会有问题了。

Flash 10目前正处于某种预发布测试阶段,但我认为很快就会推出。

编辑:很快,只看到this in my feed reader

答案 3 :(得分:0)

Flash Player 10,当前发货版本(刚刚发布2天前),允许您访问本地文件。你可以在这里找到一个例子:

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

Hoewver,你必须加载整个文件。

如果您使用在Adobe AIR中运行的SWF,那么您只能读取第一行(它具有更高级的文件API)。

最佳解决方案可能是创建一个只返回第一行数据的PHP API。

迈克室

mesh@adobe.com