none
GridView 中插入圖片 RRS feed

  • 問題

  • 前輩好,

    目前我有個需求是打算在GridView欄位中插入圖片,

    圖片的Url是依據db,

    爬了文試了很多人的方法,但不管怎麼改,圖都是xx跑不出來。

    以下是程式碼:

    aspx部分:

     <asp:GridView ID="GridView1" runat="server" CssClass="grid table table-hover table-striped" OnRowDataBound="GridView1_RowDataBound">
            <Columns>
                  <asp:ImageField HeaderText="影像" DataImageUrlFormatString="{0}"> 
                        <ControlStyle Height="100px" Width="100px" /> 
    	          </asp:ImageField> 
            </Columns>
        </asp:GridView>

    .cs部分:

            protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                string ImagePath = string.Empty;
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    DataRowView drv = e.Row.DataItem as DataRowView;
                    
                    //ImagePath = drv["FilePath"].ToString();
    
                    Image image = new Image();  
    
                    ImagePath = @"C:\tmp\BarCode39.png";
    
                    image.ImageUrl = ImagePath;
    
                    e.Row.Cells[0].Controls.Add(image);
                }
            }


    開啟HTML可以看到 img 的 src="C:\tmp\BarCode39.png",

    但仍然是xx,讀不到圖


    另外我原本於Aspx ImageField的部分有加上 

    <asp:ImageField DataImageUrlField="ImagePath"> 

    ImagePath於GridView中有顯示出來,但不知道為什麼 img 的 src讀出來都是unknown

    但如果是設定

    DataImageUrlField="FileID"

    一樣是GridView中有的欄位,卻可以讀到,雖然看起來不像路徑

    所以只好多一道手續去抓ImagePath。

    不知道這是什麼原因


    希望前輩能解惑,謝謝前輩




    • 已編輯 HumorA 2017年11月30日 上午 03:04 覺得描述的不清楚
    2017年11月30日 上午 03:00

解答

  • 網頁就要用網頁的路徑....

    用本機路徑是不會被接受的。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已標示為解答 HumorA 2017年11月30日 上午 05:22
    2017年11月30日 上午 04:27
    版主

所有回覆

  • 發現我的路徑有問題..

    我似乎不應該設定為 C:\\下

    想請問目前使用者圖片全放在Server中的 C:\\和D:\\下,我也不能搬動。

    想請問有什麼變通的方向嗎

    我會努力繼續查的。


    2017年11月30日 上午 04:05
  • 網頁就要用網頁的路徑....

    用本機路徑是不會被接受的。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已標示為解答 HumorA 2017年11月30日 上午 05:22
    2017年11月30日 上午 04:27
    版主
  • 好吧.謝謝,

    我查到也都是說有安全性考量,尤其是Chrome似乎限制更多。

    之後的做法是會先將需要的圖複製到網頁路徑下,完成後再刪除圖檔,

    謝謝前輩指點

    2017年11月30日 上午 05:26
  • 這根本還沒有到什麼安全性考量...

    只是因為你電腦裡面有圖但人家不會有,本地路徑就是直接在該電腦的本機路徑內找,沒有當然就 404 啦。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2017年11月30日 上午 05:48
    版主