0

我真的很难调整(使用 imeageresizer)从上传到 MVC 动作的图像创建的流的大小。几点观察:

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

  • outStream 长度 = 0,位置 = 0,即它是空的。

  • 下面的代码在我的 dest 输出是本地硬盘驱动器的路径时有效,但如果 dest 是流则无效(即,如果我将 outStream 替换为本地路径以保存文件,则有效)。

  • 我也尝试过使用 MemoryStream 代替流,但不行。

有人解决了这个吗?

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

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("");
    }
4

1 回答 1

0

输入(只读)流不能是输出(写入)流。您也不能写入您从中读取的同一流。

这不可能工作:

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

MSDN 文档是开始学习 I/O 流的好地方。

于 2013-08-31T18:23:39.217 回答