Actionscriptでファイルの最初の行だけを読み取ることはできますか?
-
03-07-2019 - |
質問
私は PHP ベースのサイトを持っており、ユーザーがサーバー側スクリプトによってインポートされるデータのカンマ区切りテキスト ファイルをアップロードできるようにしています。ただし、アップロードされるデータの列の順序を調整する必要がある場合があり、CSV ファイル内の列を識別できれば非常に役立ちます。 前に アップロードが行われます。
ローカル ファイル I/O にアクセスする唯一の方法は、Java プラグインまたは埋め込み Flash スクリプトを使用することですが、私は後者を好みます。Flash でローカル ハード ドライブ上のテキスト ファイルを選択し、ActionScript を使用して調べる方法はありますか? のみ 最初の行 (この例では列見出しに相当します)?
場合によっては、これらのファイルが 100 MB を超える場合があるため、すべてをメモリにロードして最初の行を除いてすべてを破棄することは、おそらく効率的に機能しないでしょう。そのため、ActionScript に読み込まれるデータの量を制限する構文があるかどうか疑問に思っています。一度に。
解決
サーバーにファイルをアップロードする場合を除いて、Flashムービーはローカルファイルシステムにアクセスできません。
選択肢は次のとおりです:
- アプレットを使用して、Java(簡単)でクライアント側のクラスを処理します。ただし、正しくアサートすると、ユーザーはアプレットにアクセス許可を付与する必要があります。
- を使用して、Adobe Airで作成された小さなクライアント側アプリケーションを提供します。ファイルシステムAPI 。
他のヒント
PHPを使用してCSVファイルの最初の行を取得し、その行のデータをフラッシュにフィードしませんでしたか?
ここで完全に間違っている可能性がありますが、この質問をしている人がPHPコードでその効果に似た何かをしたようです
現在のバージョンのFlashプレーヤーは、サーバーにアップロードするファイルのみを選択できるため、すべての処理はサーバー側で行う必要があります。ただし、プレーヤーの次のバージョンである Flash 10 は、往復せずにローカルファイルを読み取ることができます。サーバーへ。
この機能を自分で(まだ)使用していないので、ファイルの一部のみを読み取ることができるかどうかはわかりませんが、すべてローカルであれば問題は少なくなります。
Flash 10は現在何らかのプレリリースベータ版ですが、まもなく公開されると思います。
編集:まもなく、これは私のフィードリーダーで
現在の出荷バージョン (2 日前にリリースされたばかり) である Flash Player 10 を使用すると、ローカル ファイルにアクセスできます。ここで例を見つけることができます。
http://www.mikechambers.com/blog/2008/08/20/reading-and-writing-local-files-in-flash-player-10/
ただし、ファイル全体をロードする必要があります。
Adobe AIR で実行される SWF を使用する場合は、最初の行だけを読み取ることができます (より高度なファイル API を備えています)。
おそらく最良の解決策は、データの最初の行だけを返す PHP API を作成することです。
マイク・チャンバー
メッシュ@adobe.com