0

大量のグーグルとさまざまなことを試した後、これはおそらく私が台無しにしている単純なものです。

基本的に私がやっていることは、url から productID を解析し、最後に XL.jpg を追加することです。たとえば、製品 ID が 1234 の場合、プログラムは PathToFolder (C://LiveSite/img/XL/) で提供されるフォルダーで 1234XL.jpg を検索します。

パス部分まですべてが計画どおりに機能します。URL を解析して最後に XL.jpg を追加し、設定したパスをたどりますが、「アドレスが認識されませんでした。プロトコル (c ) はどのプログラムにも関連付けられていません。」他のブラウザには空白のウィンドウしかありません。

これは私のブラウザに表示されるものです:c://LiveSite/img/XL/1234XL.jpg

protected void OpenImg_Click(object sender, EventArgs e)
                {
                    int i = 0;

                    string PathToFolder = "C://LiveSite/img/XL/";

                    var dirInfo = new DirectoryInfo(PathToFolder);
                    string FileName = Variables.param + "XL.jpg";
                    var foundFiles = dirInfo.GetFiles(FileName);

                    if (foundFiles.Length == 1)
                    {
                        ClientScript.RegisterStartupScript(this.GetType(), "openFoundImage", "window.open('" + PathToFolder + foundFiles[i].Name + "');", true);
                    }
                }
            }
       }

サーバーにパスしないということで、私は何を台無しにしていますか? C:// の代わりに使用すべきものはありますか? スラッシュを別の方法で反転しようとしましたが、C:/ を使用しても機能しませんでした。

よろしくお願いします。

編集:

混乱して申し訳ありません。画像は自分のコンピューターにもプロジェクトにもありません。それらはリモートサーバー上にあり、問題がある場合はSQLサーバー上にあります。サーバーにリンクしたい場合、ディレクトリを正しく開始しているかどうかわかりません。

サーバー上で C://LiveSite/img/XL/ のフォルダーへのパスにリンクしたいのですが、そのようにリンクすると、そのサーバーで実行している場合にのみ開くことがわかりました。では、インターネット ブラウザからそのフォルダにリンクするにはどうすればよいでしょうか。自分が書いたコードをまったく使用できますか、それともまったく新しい方法で行う必要がありますか?

これは asp.net Web アプリケーションです

4

2 に答える 2

1

あなたC://LiveSite/のウェブサイトのルートディレクトリである場合、これを使用できます

protected void OpenImg_Click(object sender, EventArgs e)
{
    int i = 0;

    string PathToFolder = "C://LiveSite/img/XL/";

    string webRootPathToFolder = ResolveUrl("~/img/XL/");
    var dirInfo = new DirectoryInfo(PathToFolder);
    string FileName = Variables.param + "XL.jpg";
    var foundFiles = dirInfo.GetFiles(FileName);

    if (foundFiles.Length == 1)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "openFoundImage", "window.open('" + webRootPathToFolder + foundFiles[i].Name + "');", true);
    }
}
于 2013-06-07T18:21:03.913 に答える