我是asp.net的新手,我正在使用asp.net mvc 4创建一个网站,用户可以上传任何类型的图像(png,jpeg,gif),但系统会将图像保存为png
格式。我使用WebImage
帮助器。到目前为止,上传工作正常,但只要系统保存图像,文件名就像这样Filename.png.jpeg
。这是我在Controller中的代码,
if (file != null && file.ContentLength > 0)
{
string picName = "FileName";
WebImage img = new WebImage(file.InputStream);
if (img.Width > 265 || img.Height > 158)
{
img.Resize(265, 158);
}
string picExt = Path.GetExtension(file.FileName);
if (picExt == ".jpg")
{
picExt = ".png";
}
string path = System.IO.Path.Combine(Server.MapPath("~/Images/"), picName + picExt);
img.Save(path);
}
无论用户上传任何格式的图片,如何将图片保存为png
格式?非常需要这个帮助。 TNX。
答案 0 :(得分:1)
我有同样的问题,我只是告诉它忽略正确的扩展强制。 第三个参数是bool forceCorrectExtension,默认情况下为true。自手动设置扩展名以来,您不需要第二个参数。
img.Save(path,null,false);
答案 1 :(得分:0)
刚遇到同样的问题。请看这里: WebImage.Save Method
科宁是正确的一半,它可能会那样工作。但是,第二个参数实际上告诉它保存的格式为:
imageFormat
类型:System.String
图像文件时使用的格式 已保存,例如" gif"或" png"。
jpeg不会因为你改变扩展而成为一个png。除非Save
方法知道基于扩展名(???)重新格式化,否则我宁愿做出谨慎的错误:
img.Save(path, "png", false);