1

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

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

有时这些文件可能大于 100 MB,因此将整个文件加载到内存中,然后将除第一行之外的所有文件都扔掉可能无法有效地工作,所以我想知道 ActionScript 中是否有语法来限制读取的数据量一次。

4

3 回答 3

1

Flash 电影无法访问本地文件系统,除非将文件上传到服务器。

我认为你的选择是:

  1. 使用小程序在客户端使用 Java(简单)处理类。但是,正如您正确断言的那样,用户将需要授予对小程序的权限。
  2. 使用文件系统 API提供一个用 Adob​​e Air 编写的小型客户端应用程序。
于 2008-10-14T21:48:37.857 回答
0

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

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

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

编辑:确实很快,刚刚在我的提要阅读器中看到了这个

于 2008-10-15T06:22:39.253 回答
0

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

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

但是,您必须加载整个文件。

如果您使用在 Adob​​e AIR 中运行的 SWF,那么您可以只阅读第一行(它具有更高级的文件 API)。

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

迈克室

网格@adobe.com

于 2008-10-17T15:14:44.700 回答