4

私が読んだように、JavaScriptがクライアントPC上のファイルを変更するのは簡単ではありません。私はWebベースのファイルマネージャーに取り組んでおり、次のことを知っておく必要があります。

  • JavaScriptはクライアントPC上のファイルとフォルダー構造を一覧表示できますか?
  • JavaScriptはサーバー上のファイルとフォルダー構造を一覧表示できますか?

答えが「いいえ」の場合、そのJava Sciptは、クライアントまたはサーバーのC:\ドライブにあるファイルやフォルダーを一覧表示できません。CGIスクリプトが唯一の解決策でしょうか。

4

3 に答える 3

8

クライアントPCのファイルを読み取るブラウザJS:依存

セキュリティ上の理由から、ユーザーの同意なしにユーザーのPC上のファイルにアクセスすることはできません。

そのため、FileReader APIは、ファイル入力ボックス<input type="file">とドラッグアンドドロップ領域の周囲に作成されます。これは、全体的なアイデアが「ユーザーの同意を得てファイルにアクセスする」ことであるためです。ユーザーが意図的にファイルをアクセス用に配置しない限り、ファイルにアクセスすることはできません。

サーバー側のJSが自分のサーバーのファイルを読み取る:はい

サーバーに関しては、server-JS( NodeJSまたはRhino )を使用してサーバーにアクセスする場合は、可能です(とにかく、他にどのようにWebページを提供しますか?)。

自身のサーバーのファイルを読み取るブラウザJS:依存

JSを使用してブラウザーからサーバーにアクセスすることは、サーバーからファイルを読み取るためのAPIがある場合に機能します。

他のサーバーのファイルを読み取るブラウザJS:はい、キャッチあり

APIを使用せずに他のサーバーのファイルにアクセスするには、サーバー側で実行されるWebスクレーパーまたはWebスパイダーを作成し(同じオリジンポリシーのためにブラウザーがドメインを横断できないため)、ブラウザーにAPIを公開することができます。 。

でも:

  • 一部のファイルは外部からのアクセスが制限されている可能性があるため、すべてのファイルにクロールすることはできません。
  • 特にサイトがセグメント化されたURLスキームを使用している場合、構造の一般的な外観は内部構造とは異なる可能性があります
  • クエリ文字列を使用してページを生成するサイトは、作成できる順列の数が多いため、簡単にクロールできないため、一部のページに到達できない場合があります。
于 2012-05-27T13:55:47.603 に答える
2

CGIは、サーバーのファイルシステムにのみアクセスでき、サイトにアクセスするクライアントのファイルシステムにはアクセスできないため、ソリューションにもなりません。javascriptからクライアントのファイルシステムにアクセスする唯一の方法はFileAPIのようですがこれは明らかに多くのブラウザで実装されていません

于 2012-05-27T13:42:14.630 に答える
0

それは恨みですが、Javaアプレットまたは恐ろしいActiveXコントロールに頼ることができます。

于 2012-05-27T14:34:00.893 に答える