12

したがって、次のようなファイルシステムがあります。

Music
- 001
-- song.mp3
- 002
-- song.mp3
- 003
- 004
- 005
-- song.mp3
musicplayer.html
musicplayer.js

すべてのフォルダ名のリストを取得できるかどうかに興味がありましたか?

このjavascript、html5、さらにはjQuery、何もインストールできません。

4

4 に答える 4

13

彼の質問には一理あります (HTML5)


すべてのフォルダ名のリストを取得できるかどうか知りたいです。このjavascript、またはjQueryでさえ、何もインストールできません

単純に「いいえ」ですが、最後の回答ではありません。

JavaScript (JS) は、インタープリター型のコンピューター プログラミング言語です。当初は Web ブラウザーの一部として実装されていたため、クライアント側のスクリプトがユーザーと対話し、ブラウザーを制御し、非同期で通信し、表示されるドキュメント コンテンツを変更することができました。

JavaScript には、主に次の 3 つのタイプがあります。

Client-Side JavaScript (CSJS) -- an extended version of JavaScript that enables the enhancement and manipulation of web pages and client browsers

Server-Side JavaScript (SSJS) -- an extended version of JavaScript that enables back-end access to databases, file systems, and servers

Core JavaScript -- the base JavaScript language

クライアント側 JavaScript (CSJS) とサーバー側 JavaScript (SSJS) はコア JavaScript に依存しており、それなしでは機能しません。

JavaScript と DOM は、悪意のある作成者が Web 経由でクライアント コンピューター上で実行するスクリプトを配信する可能性を提供します。ブラウザーの作成者は、2 つの制限を使用してこのリスクを封じ込めます。まず、スクリプトは、ファイルの作成などの汎用プログラミング タスクではなく、Web 関連のアクションのみを実行できるサンドボックスで実行されます。第 2 に、スクリプトは同じオリジン ポリシーによって制約されます。ある Web サイトのスクリプトは、別のサイトに送信されたユーザー名、パスワード、Cookie などの情報にアクセスできません。ほとんどの JavaScript 関連のセキュリティ バグは、同一オリジン ポリシーまたはサンドボックスの違反です。

一般的な JavaScript のサブセット (ADsafe、Secure ECMA Script (SES)) があり、特にサード パーティによって作成されたコード (広告など) に対して、より高いレベルのセキュリティを提供します。

すべてのフォルダ名のリストを取得できるかどうか知りたいです。HTML5

HTML5 は FileSystem API を提供しており、少なくとも知っている限りは、あなたの喉の渇きを解決するかもしれません:)
ここでチュートリアルを読んでください: http://www.html5rocks.com/en/tutorials/file/filesystem/


もう1つの解決策は、醜いブラウザApiを使用することです.これは決してお勧めしません.
最善の解決策 は、phpなどのサーバー側言語を使用することです.

于 2013-03-21T00:53:13.697 に答える
0

クライアント側の Javascript についてお尋ねの場合は、はい、ファイル API を使用して Mozilla Firefox でアクセスできます。他のブラウザーはわかりません。

https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O

于 2013-03-21T01:03:29.043 に答える
0

クライアントのファイル システムを取得しようとしていますか? その場合、Web ブラウザーは通常、セキュリティ上の理由からこの種の動作を禁止します。

Web サーバー上のものをリストしようとしている場合、JavaScript はクライアントのマシンで実行されるため、これはAJAXなしでは実行できません。ディレクトリを一覧表示するにはサーバー コードが必要ですが、これは潜在的なセキュリティ リスクを引き起こす可能性があります。

サーバー側のコードを実行してディレクトリを一覧表示するのが最善の策だと思いますが、クライアント側のコードでそれを行うのは最も安全ではありません。

于 2013-03-21T00:47:04.863 に答える
-2

@Tariqが言ったように、phpなどのサーバー側コードを使用して、これを確実に達成できます。ajax を介してルートに関連するディレクトリ パスを送信できます (jquery $.post() @ http://api.jquery.com/jQuery.post/を確認してください)。

<?php
  if (isset($_POST['submit'])) {
  //capture post varibles, sanitizing of course.
  $dir = "";
  $dir = $_POST['input'];

    $dh  = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
      $files[] = $filename;
    }
//now, do stuf with files

    sort($files);
    print_r($files);
  }

?>

出力は次のとおりです。

Array
(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)

お役に立てれば。

于 2013-03-21T01:01:42.617 に答える