C# 在服务器上保存图像';s文件系统

C# 在服务器上保存图像';s文件系统,c#,asp.net,C#,Asp.net,我得到了以下代码,可以帮助我将映像保存到服务器文件系统: if (FileUpload1.HasFile) { string ImgName = FileUpload1.FileName; FileUpload1.SaveAs(Server.MapPath("~").ToString() + "\\" + ImgName); Stream imgStream = FileUpload1.PostedFile.InputSt

我得到了以下代码,可以帮助我将映像保存到服务器文件系统:

      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\ux”+ImgName

我需要做的就是:

ImageControl1.imageUrl=Server.MapPath("~").ToString() + "\\ThumbNail_" + ImgName; 
图像是否显示在我的ImageControl中

你能批评我的代码并添加进去吗?因为这是我第一次尝试从文件系统中保存和检索代码


所有这些过程都可以在我的visual studio 2010本地服务器上运行吗?

服务器。MapPath
提供服务器上映像的绝对路径。为了将映像提供给客户端,您需要相对路径。因此,您可以尝试使用以下方法:

或者,如果我没有记错,图像控件已经执行了此操作,并且您不需要显式调用
ResolveUrl
,因此以下操作也可能有效:

ImageControl1.ImageUrl = "~/ThumbNail_" + ImgName; 

缩略图将减少您的实际图像,这样它将显示在您网站的头像上而不会出现任何失真。您也可以使用图像而不创建缩略图,但用户将以不同的比例(宽度和高度)上载图像,它们在显示时可能会失真。因此,缩略图将使所有上载图像的大小成比例。

为什么我需要使用thumNail?我可以删除它吗?@使用FlyingColor,我不知道。只需使用存储在文件系统中的要显示的图像的名称。如果在你可以使用
ImageControl1.ImageUrl=“~/”+ImgName;
。是否有办法检查文件是否为图像以及图像的大小和重量?@WithFlyingColors,是的,有:你可以尝试将其加载到
image
对象:
image.FromFile(…)
如果成功,请使用生成的宽度和高度属性。是的,至少所有ur图像的大小都是固定的,并且在显示为头像时看起来也不错。使用起来很好。我如何确定它们的大小?我如何将thumnail图片适配到我的图片控件?这取决于你。你可以设置图像控件的宽度和高度l显示avtar的位置。例如,如果图像控件为200 X 200,则缩略图应为200 X 200。您可以根据页面布局确定图像控件的尺寸。希望对您有所帮助。
ImageControl1.ImageUrl = "~/ThumbNail_" + ImgName;