imageresizer调整流的大小 - 输出空流,即0字节

时间:2013-08-31 16:58:51

标签: upload stream resize photo imageresizer

我真的很难调整(使用imeageresizer)从上传到MVC操作的图像创建的流。一些观察结果:

  • inStream最初是正确定义的,包含带内容的图像流(长度> 0)

  • outStream length = 0,position = 0,即它是空的。

  • 下面的代码在我的dest输出是我的本地硬盘驱动器的路径时起作用,但如果dest是一个流则不起作用(即如果我用本地路径替换outStream以保存文件)。

  • 我也试过使用MemoryStream而不是流,但没有去。

有人解决了这个吗?

这是我的代码。任何帮助都非常感谢... thx

public ActionResult Save(IEnumerable<HttpPostedFileBase> files)
    {
        if (files != null)
        {
            foreach (var file in files)
            {
                Stream inStream = file.InputStream;
                Stream outStream = file.InputStream;

                var mySettings = new ResizeSettings
                {
                    MaxWidth = 100,
                    MaxHeight = 100,
                    Format = "JPG"
                };

                ImageResizer.ImageBuilder.Current.Build(inStream, outStream, mySettings);

                //upload outStream to CDN........
            }
        }

        // Return an empty string to signify success
        return Content("");
    }

1 个答案:

答案 0 :(得分:0)

输入(只读)流不能是输出(写入)流。您也无法写入您读取的同一个流。

这不可行:

            Stream inStream = file.InputStream;
            Stream outStream = file.InputStream;

MSDN documentation is a good place to start learning about I/O streams