我使用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 :(得分:2)
您应该将路径放在DirectoryInfo对象中:
DirectoryInfo directory = new DirectoryInfo(@"C:\Program Files\Common Files\Microsoft
Share\img.png");
然后使用:
directory.FullName;
答案 1 :(得分:2)
如果你把它留给用户/客户端,你就无法完美地完成它,因为你永远不会知道图像的深度,用户将要上传。
您可以进行硬编码以节省麻烦/异常等,例如:
string imagePath ="~/Project/Images/Banners/"+Image_Name+".jpg";
其中Image_Name是由您的逻辑创建的字符串,如:
string Image_Name = "userid_" + userid + "_avatar";