保存图像的最佳方法?

时间:2012-01-07 23:15:54

标签: c# file-upload

我有一个asp.net mvc应用程序,允许上传图像。我想知道最好的方法是什么。

现在我有了这个

HttpPostedFileBase uploadedImg = Session[SessionImgKey] as HttpPostedFileBase;

if (uploadedImg != null)
{
    string fileName = CreateFile(MyField.Name, uploadedImg);
    tableA.ImagePath = String.Concat(ImgFolderPathLoctaion, "\\", fileName);
}

这很好,但我想将它移动到我的服务层,我不希望将web.dll导入到我的服务层项目中。

我应该使用流吗?或类似Image Save 之类的东西(我认为这可能更适合通过绘画类而不是图像上传的图像。

2 个答案:

答案 0 :(得分:1)

您可以从发布的文件中获取图像流,将其转换为图像(System.Drawing),然后保存:

var stream = uploadedImg.InputStream;
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
//convert stream into image
Image myImage = Image.FromStream(new MemoryStream(buffer));
myImage.Save("c:\myimage.jpg");

答案 1 :(得分:0)

如果需要将文件传递到服务层,请使用HttpPostedFileBase的InputStream属性传递流。通过这种方式,您的服务层不知道您的Web /表示层。