我得到的代码可以帮助我将图像保存到服务器文件系统:
if (FileUpload1.HasFile)
{
string ImgName = FileUpload1.FileName;
FileUpload1.SaveAs(Server.MapPath("~").ToString() + "\\" + ImgName);
Stream imgStream = FileUpload1.PostedFile.InputStream;
Bitmap bmThumb = new Bitmap(imgStream);
System.Drawing.Image im = bmThumb.GetThumbnailImage(100, 100, null, IntPtr.Zero);
im.Save(Server.MapPath("~").ToString() + "\\ThumbNail_" + ImgName);
}
我不知道为什么他们将图像转换为缩略图..我只需要将图像保存到文件系统并作为小图像(对于头像)进行检索。
我在我的数据库中将文件名保存为nvarchar(50)。
我的问题是如何从文件系统中检索图像。 (我可以从数据库中获取其路径,即:Server.MapPath("~").ToString() + "\\ThumbNail_" + ImgName
我需要做的就是:
ImageControl1.imageUrl=Server.MapPath("~").ToString() + "\\ThumbNail_" + ImgName;
图像是否会出现在我的ImageControl中。
你能否批评我的代码并添加它...因为这是我第一次尝试从文件系统保存和检索。
我的visual studio 2010本地服务器上是否所有这些处理都可以使用?
答案 0 :(得分:1)
缩略图会减少您的实际图像,因此它会显示在您网站的头像上而不会出现任何失真。您也可以在不创建缩略图的情况下使用图像,但用户将以不同的比例(宽度和高度)上传图像,在显示时可能会失真。因此缩略图将使所有上传图像的比例尺寸。
答案 1 :(得分:0)
Server.MapPath
提供服务器上图像的绝对路径。为了向客户端提供图像,您需要相对路径。因此,您可以尝试使用ResolveUrl方法:
ImageControl1.ImageUrl = ResolveUrl("~/ThumbNail_" + ImgName);
或者如果我没记错,Image控件已经执行了此操作,您无需显式调用ResolveUrl
,因此以下内容也可能有效:
ImageControl1.ImageUrl = "~/ThumbNail_" + ImgName;