2016-05-14 8 views
0

ユーザIDに応じてグリッド表示で画像を表示したい。問題は、自分のイメージが別のドライブに保存されていて、ウェブサイトのフォルダに保存されていないことです。私はパスを取得してもイメージを表示することはできません。その記事でPAthが他のドライブにあるDBからGridViewに画像を表示

このリンクによるとHow to display image which is stored in local drive?

答えはIDに応じてクエリ文字列か何かを渡し、別のページを作成示唆しています。

これは初めてのことで、クエリ文字列の操作方法がわかりません。私は、次のコードを書かれている

: -

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
     <Columns> 
      <asp:BoundField DataField="User_ID" HeaderText="User_ID" /> 
      <asp:ImageField DataImageUrlField="Photo_File_Path" HeaderText="Photo_File_Path"> 
      </asp:ImageField> 
     </Columns> 
    </asp:GridView> 


SqlConnection con = new SqlConnection(CS); 
     SqlCommand cmd = new SqlCommand("SELECT User_ID, Photo_File_Path FROM User_M", con); 
     con.Open(); 

     SqlDataReader rdr = cmd.ExecuteReader(); 
     GridView1.DataSource = rdr; 
     GridView1.DataBind(); 
     con.Close(); 

どのように私は、クエリ文字列に対応するためにコードを取得したり、やる私は画像を表示することができ、他の方法があれば。

ありがとうございます。

答えて

0

あなたの特定の質問に対する答えは実際にはありませんが、IISの仮想ディレクトリの設定を見て、どこからでもディレクトリをマップすることができますあなたのマシンをサイトのサブディレクトリなどにコピーします。

だから、あなたのサイトがhttp:\\mysite.com\userImagesことによってそれを参照できるように、C:\sites\mySite\userImagesで利用できるように表示されるようにディレクトリD:\data\images\をマッピングすることができますが、C:\sites\mySiteであなたのサイトを持っていると言います。

これはサイト構造を整理する簡単な方法であり、ウェブサイトコードを変更することなくその物理ディレクトリを移動することができます。

希望すれば、どんなやり方で進んでもらえますか? :)

EDIT:このリンクは、あなたがこれを設定するために必要な情報を提供しています。 https://www.iis.net/configreference/system.applicationhost/sites/site/application/virtualdirectory

0

これはまだ適用されますが、ここに行けば、私にはわからない:

をお使いのコンピュータ上のすべてのサービスがそうであるようにあなたのウェブサーバは、ユーザーアカウントで実行されています。通常はIUSRなどのアカウント名です。

ファイルがあるドライブで、フォルダを右クリックして、アクセス権にアクセスしてこのユーザーに読み取りアクセスを許可できます。

これはもちろん、自分で制御できるサーバーにのみ適用され、Azureやその他のホスト環境にはスケールアウトされません。しかし、それはあなたの問題を解決しなければなりません。

EDIT:リンク先の投稿は5歳です。私は完全にそれを信用することには気をつけたいでしょう:)

+0

私はそのフォルダに対するユーザのフルコントロールを与えているが、それはまだ動作しません。 – user2211486

+0

さて、私が恐れていたのは、うまくいけば、他の誰かが、現代のこれらの時代にどうやってやるのか教えてくれるはずです:) –

関連する問題