为什么完整的图像路径没有存储在数据库中?

时间:2013-12-13 12:19:33

标签: c# asp.net sql-server-2008 linq-to-sql

我使用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;

但是在数据库中我发现没有存储整个图像路径。

在数据库中存储了一些路径,我无法从数据库中检索图像。

如果我的代码有解决方案或改进?

请告诉我,

提前致谢。

2 个答案:

答案 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";