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

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

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

有帮助吗?

解决方案

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

我认为你的选择是:

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

其他提示

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

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

使用PHP获取CSV文件的第一行并创建带有数据的MySQL表

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

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

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

编辑:很快,只是看到这在我的Feed阅读器中

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top