C# 将图像转换为不同格式后,应用程序会不断返回空文件
我正在尝试制作一个MVC应用程序,让客户端上传图像,将图像转换为不同的格式(.tif在本例中),并将其返回给客户端 我遇到的问题是,图像总是0 KB。我似乎想不出这个问题 观点:C# 将图像转换为不同格式后,应用程序会不断返回空文件,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我正在尝试制作一个MVC应用程序,让客户端上传图像,将图像转换为不同的格式(.tif在本例中),并将其返回给客户端 我遇到的问题是,图像总是0 KB。我似乎想不出这个问题 观点: @using (Html.BeginForm(null, null, FormMethod.Post, new { enctype="multipart/form-data" })) { <input accept=".bmp, .gif, .jpg, .jpeg" name="file" type="f
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype="multipart/form-data" }))
{
<input accept=".bmp, .gif, .jpg, .jpeg" name="file" type="file" />
<input type="submit" value="Submit" />
}
调试后,我清楚地看到FileStream属性包含数据
imgStream
在写入后需要重绕。设置imgStream.Position=0代码>在将其传递到文件之前,这是一个快速的响应。@Jakov抱歉,下次我会尽量慢一点:)你应该这样做。我甚至还不能将此标记为正确答案,我还有事情要做:)
[HttpPost]
[ActionName("Index")]
public ActionResult UploadImages(HttpPostedFileBase file)
{
var tiffEncoder = ImageCodecInfo.GetImageEncoders()
.SingleOrDefault(dec => dec.FormatID == ImageFormat.Tiff.Guid);
Stream imgStream = new MemoryStream();
using (EncoderParameters encParams = new EncoderParameters(1))
using (Image img = Image.FromStream(file.InputStream, true, true))
{
encParams.Param[0] = new EncoderParameter(Encoder.Quality, 100);
img.Save(imgStream, tiffEncoder, encParams);
}
var result = File(imgStream, "image/tiff", "image.tif");
return result;
}