我有一个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 之类的东西(我认为这可能更适合通过绘画类而不是图像上传的图像。
答案 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 /表示层。