web-dev-qa-db-ja.com

Windows共有フォルダーへのURL

working Windows共有フォルダーへのリンクをHTMLページに組み込む方法はありますか?例えば。 \\server\folder\pathへのリンクですか?

簡単にするために、ページがWindowsマシン(もちろん、serverが配置されているのと同じイントラネット)で開かれるとします。

file://スキームでいくつかのトリックを試しましたが、どれも機能していないようです。

26
alex

2つの問題があると思います。

  1. スラッシュをエスケープする必要があります。
  2. ブラウザのセキュリティ。

説明:

  1. 私は私のいずれかをチェックしました、私はパターンを持っています:

    <a href="file://///server01\fshare\dir1\dir2\dir3">useful link </a>
    

    プロトコルの後に5つのスラッシュ(file:

  2. Firefoxはクロスサイトスクリプティングを防止しようとします。私の解決策は、プロファイルディレクトリのprefs.jsを変更することでした。次の2行を追加します。

    user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
    user_pref("capability.policy.localfilelinks.sites", "http://mysite.company.org");
    
26
Bill

ファイルプロトコルURIは次のようになります

file:// [ホスト]/[パス]

このため、次のようなファイルURLが頻繁に表示されます(3つのスラッシュ)file:/// c:\ path ...

したがって、ホストがserver01の場合、

file:// server01/folder/path ....

これは、file://プロトコルのウィキペディアページによると、.NETのUri.IsWellFormedUriStringメソッドでチェックアウトします。

8
Jim W

さらに進んでjavascript/html機能を使用できる場合は、Apache Webサーバーを使用して、httpを介してディレクトリリストを表します。

この解決策が適切な場合。手順は次のとおりです。

  1. ミラーの1つからApache hhtpサーバーをダウンロードします http://httpd.Apache.org/download.cgi

  2. c:\ opt\Apacheなどのディレクトリに解凍/インストール(msiの場合)(指示はWindows用です)

  3. ネットワークフォーダーをWindows上のローカルドライブとしてマップします(ドライブHを例にとると\ server\folder

  4. conf/httpd.confファイルを開きます

  5. 次の行が存在し、コメントされていないことを確認してください

    LoadModule autoindex_module modules/mod_autoindex.so

  6. ディレクトリ構成を追加する

<Directory "H:/path">

Options +Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory> 7. Webサーバーを起動し、リモートフォルダーのディレクトリ一覧がhttpで利用できることを確認します。 localhost/pathを押します。8。Webページ内のフレームを使用してリストにアクセスします

見落とされているもの:1. migntでホスト名にさらに凝った設定が必要な場合は、Apache Web Serverのドキュメントを参照してください。ホスト名をDNSサーバーに登録します

  1. ネットワークドライブへのマッピングが機能しない可能性があるため、確認しませんでした。可能な解決策として-Webサーバーをsmbサーバーと同じマシンでホストします。
1
Pavlonator