C# 将图像转换为不同格式后,应用程序会不断返回空文件

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

我正在尝试制作一个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="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;
    }