web-dev-qa-db-ja.com

htmlリンクでフォルダーを開く方法は何ですか

アプリケーションのユーザーに、Webページ内のリンクをクリックしてフォルダーを開かせる必要があります。フォルダーのパスはネットワーク上にあり、どこからでもアクセスできます。これを行う簡単な方法はおそらくないと思いますが、おそらく私は間違っていますか?

90

Windowsエクスプローラーで共有フォルダーを開きますか? file:リンクを使用する必要がありますが、注意点があります。

  • リンクが変換されたUNCパス(file://server/share/folder/)である場合、Internet Explorerは動作します。
  • Firefoxは、リンクが5つのスラッシュ(file://///server/share/folderandを使用して独自のマングル形式になっている場合に動作します file:のセキュリティ制限を無効にしますHTTP経由で配信されるページ内のリンク 。ありがたいことにIEはマングルリンクフォームも受け入れます。
  • Opera、Safari、およびChromeは、HTTP経由で提供されるページでfile:リンクを開くことを確信できません。
99
Andrew Duffy

URL file://[servername]/[sharename]は、ネットワーク上の共有フォルダーへのエクスプローラーウィンドウを開く必要があります。

5

ディレクトリのリストが許可されるようにフォルダのアクセス許可が設定されていることを確認してから、たとえばchmod 701を使用してアンカーをそのフォルダにポイントするだけです(ただし、リスクがあるかもしれません)。

<a href="./downloads/folder_i_want_to_display/" >Go to downloads page</a>

そのディレクトリにindex.htmlインデックスファイルがないことを確認してください

4
lock

セキュリティ設定が中程度のレベルに設定されている場合、file://///を使用しても機能しません。

ユーザーがネットワークまたは共有にあるファイル*をダウンロード/表示できるようにしたいだけなら、IISに仮想ディレクトリを設定できます。 [プロパティ]タブで、[別のコンピューターにある共有]が選択されていること、および[接続...]がネットワークの場所を表示できるアカウントであることを確認します。

Webページから仮想ディレクトリにリンクします(例 http:// yoursite/yourvirtualdir / )。これにより、Webブラウザでディレクトリのビューが開きます。

*仮想ディレクトリへの書き込み権限を許可して、ユーザーがファイルを追加できるようにすることはできますが、それを試行せず、ネットワーク権限がこの設定を上書きすると想定できます。

3
Bickie

Chromeでは機能しませんが、この他の回答はプラグインを介した解決策を示唆しています:

Google Chromeはローカルリンクを開くことができますか?

2
luison

リンクアドレスをコピーして新しいウィンドウに貼り付けて、セキュリティを回避することもできます。これはchromeおよびfirefoxで機能しますが、firefoxでスラッシュを追加する必要がある場合があります。

1
Wyrmwood

パーティーに少し遅れましたが、最近私はこれを自分自身で解決しなければなりませんでしたが、少し異なりますが、それは自分と同じ状況の人を助けるかもしれません。

私はラップトップでxamppを使用して、Windows上で純粋にローカルなWebサイトアプリを実行しています。 (私が知っている非常に特定の環境)。この例では、phpファイルへのhtmlリンクを使用して実行します。

Shell_exec('cd C:\path\to\file');
Shell_exec('start .');

これにより、ローカルのWindowsエクスプローラーウィンドウが開きます。

1
Lucas Taulealea