在MVC中将HttpPostBasicFile转换为Image

时间:2013-04-25 07:51:30

标签: asp.net-mvc image

我通过上传获得图片,我想将其转换为图像文件而不保存它 我该怎么办?

public HttpPostedFileBase BasicPicture { get; set; }

var fileName = Path.GetFileName(BasicPicture.FileName);
// store the file inside ~/App_Data/uploads folder
 var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
BasicPicture.SaveAs(path);

通过此代码,我可以将图片保存在服务器上,但我想将其转换为图像 像

Image img=(Image) BasicPicture;

但它不起作用。

3 个答案:

答案 0 :(得分:1)

您可以使用FromStream方法:

using (Image img = Image.FromStream(BasicPicture.InputStream))
{
    ... do something with the image here
}

答案 1 :(得分:1)

您还可以将 HttpPostedFileBase 转换为 WebImage (这会为您提供更多类似API的方法调整大小):

public ActionResult SaveUploadedImage(HttpPostedFileBase file)
{

    if(file != null)
    {

        var image = new System.Web.Helpers.WebImage(file.InputStream);

        var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), file.FileName);

        image.Save(path);

    }

    return View();
}

答案 2 :(得分:0)

不知道你在做什么以及为什么我能给出一个完整的智能答案。

我个人会用这样的东西来打开图像。您已将图像保存到服务器,因此不是为什么不新建新图像?最终的结果是一样的!

WebImage webImage = new WebImage(path);