web-dev-qa-db-ja.com

ローカルリソースのロードは許可されていません:ファイル

以下のコードを使用してリンクを作成しています。IEでリンクをクリックすると、リンクが機能し、URLを開くことはできますが、Chromeではできません。

Test<a href='#'onClick=window.open('file:\\160.53.112.171\myTest\cons\4.1\displayData.htm','_self') >

以下は、Chromeのコンソールに表示されるエラーメッセージです。

ローカルリソースの読み込みを許可していません:file:file:/// C:/160.53.112.171myTestcons%04.1displayData.htm in chrome。

15
scrit

ここに着陸してasp.netで作業する人向け:

IE以外のすべてのブラウザーで同じ問題(ローカルリソースの読み込みが許可されていない)が発生していました。

私の回避策は、アンカーをハンドラーに直接接続し、パスのクエリ文字列を含めることでした。

<a href='handler.ashx?file=//server_name//dir//filename.pdf' />

次に、ハンドラーがファイルを応答として書き込みます(_selfを使用して、必要に応じて新しいタブで開きます)。

public void ProcessRequest (HttpContext context) {

        if (context.Request["file"] != null && !String.IsNullOrEmpty(context.Request["file"].ToString()))
        {
            try
            {
                context.Response.Clear();
                context.Response.ClearContent();
                context.Response.ClearHeaders();
                //whichever content type you're working with
                context.Response.ContentType = "application/pdf";

                //encode the path when you set the href of the anchor, so decode it now
                string file_name = HttpUtility.UrlDecode(context.Request["file"].ToString());
                context.Response.TransmitFile(file_name);

            }
            catch { }
        }
}
3
James

IEのJavaScriptでFILE:\\\\を使用してファイルを開こうとした場合。 IEは、いくつかのセキュリティ制限のため、これを開くことができません(これはデフォルトの動作です)。私はこれに直面しましたIE以前に複数のセキュリティ問題IEセキュリティ設定を以下のように変更してみることができますが、推奨されていません(動作を変更するためにすべてのユーザーの設定を変更することはできないため)。

以下の設定はIE 8で機能します

Internet Explorerで、[ツール]→[インターネットオプション]→[詳細設定]に移動します。 [セキュリティ]セクションまでスクロールし、[マイコンピュータのファイルでアクティブコンテンツを実行できるようにする]チェックボックスをオンにします。

1
Utkarsh