2013-12-13 83 views
2

我使用Linq-to-SQL來存儲和檢索SQL Server數據庫中的圖像。我使用它的varchar(max)數據類型。爲什麼完整的圖像路徑沒有存儲在數據庫中?

這裏是我保存圖像的代碼,

EventBL r = new EventBL(); 
r.Banner_SignUp_Page = System.IO.Path.GetFullPath(fuBanner.FileName); 
r.Insert(); 

,這裏是檢索它。

var result1 = from a in db.EMR_INVITATIONs 
       join b in db.EMR_EVENTs on a.EventID equals b.EventID 
       where b.EventID == (int)Session["eventid"] 
       select new 
       { 
       Banner = b.Banner_SignUp_Page, 
       }; 

var ev = result1.First(); 

Image1.ImageUrl = ev.Banner; 

但在數據庫中我發現圖像的整個路徑不存儲。

在數據庫中存儲了一些路徑,並且我無法從數據庫檢索圖像。

如果在我的代碼中有解決方案或改進?

請讓我知道,

在此先感謝。

+0

當您調試通過您的代碼,做' r.Banner_Signup_Page'確實包含**完整路徑**,然後再進行存儲? –

+0

r.Banner_SignUp_Page在將其存儲在數據庫中之前的價值是什麼? – Marton

+0

「C:\ Program Files \ Common Files \ Microsoft Share」是r.Banner_Signup_Page。不完整的路徑即將到來,這是一半的路徑。 – Monika

回答

2

你應該把你的路徑DirectoryInfo對象中:

DirectoryInfo directory = new DirectoryInfo(@"C:\Program Files\Common Files\Microsoft 
Share\img.png"); 

然後使用:

2

如果你把它高達用戶/客戶端,你不能真正做到完美,因爲你永遠不會知道圖像的意圖,用戶將要上傳。
你可以做硬編碼省事/異常等,如:

string imagePath ="~/Project/Images/Banners/"+Image_Name+".jpg"; 

其中IMAGE_NAME是你的邏輯就像一個字符串創建:

string Image_Name = "userid_" + userid + "_avatar"; 
相關問題