收到“Stream 不支持写入。”以下代码中出现异常

2024-03-21

我正在尝试将图像上传到 Amazon S3,但在此之前我正在调整图像大小。为了调整大小,我必须传递流对象,并且在某一时刻(注释为 //Error 的行)我收到“Stream 不支持写入”。例外。请帮忙。

 public ActionResult AddPost(AddPost post)
    {
        Guid guid = new Guid();
        AccountController ac=new AccountController();

        string randomId = guid.ToString();

        PutAttributesRequest putAttributesAction = new PutAttributesRequest().WithDomainName("ThisIsMyEXDomainPosts").WithItemName(randomId);

        List<ReplaceableAttribute> attrib = putAttributesAction.Attribute;

        System.IO.Stream stream;

        System.IO.StreamReader sr = new System.IO.StreamReader(post.imageFileAddress.ToString());


        sr.ReadToEnd();

        stream = sr.BaseStream;

        Amazon.S3.Model.PutObjectRequest putObjectRequest = new Amazon.S3.Model.PutObjectRequest();

        System.Drawing.Image img = System.Drawing.Image.FromStream(stream);

        System.Drawing.Image imgResized = ResizeImage(img, 640, 800);

        System.IO.MemoryStream mstream = new System.IO.MemoryStream();

        imgResized.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);

        mstream.WriteTo(stream);//Error

        putObjectRequest.WithBucketName("TIMEXImages");
        putObjectRequest.CannedACL = Amazon.S3.Model.S3CannedACL.PublicRead;
        putObjectRequest.Key = randomId + "_0.jpg";
        putObjectRequest.InputStream = stream;

        Amazon.S3.Model.S3Response s3Response = as3c.PutObject(putObjectRequest);
        s3Response.Dispose();

        //Uploadig the Thumb

        System.Drawing.Image imgThumb = ResizeImage(img, 80, 100);

        imgThumb.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);

        mstream.WriteTo(stream);

        putObjectRequest.WithBucketName("MyProjectImages");
        putObjectRequest.CannedACL = Amazon.S3.Model.S3CannedACL.PublicRead;
        putObjectRequest.Key = randomId + ".jpg";
        putObjectRequest.InputStream = stream;

        Amazon.S3.Model.S3Response s3Response2 = as3c.PutObject(putObjectRequest);
        s3Response2.Dispose();


        //Closing all opened streams
        sr.Close();

        stream.Close();

        mstream.Close();



        //Adding to SimpleDB
        attrib.Add(new ReplaceableAttribute().WithName("category").WithValue(post.category));
        attrib.Add(new ReplaceableAttribute().WithName("description").WithValue(post.description));
        attrib.Add(new ReplaceableAttribute().WithName("favoriteCount").WithValue("0"));
        attrib.Add(new ReplaceableAttribute().WithName("imageThug").WithValue(randomId));
        attrib.Add(new ReplaceableAttribute().WithName("title").WithValue(post.title));
        attrib.Add(new ReplaceableAttribute().WithName("userId").WithValue(ac.GetLoggedInUserId()));

        sdb.PutAttributes(putAttributesAction);




        return View();
    }

似乎是BaseStream of a StreamReader is read只是——这是有道理的。为什么你首先需要重新使用这个流呢?直接使用内存流即可:

mstream.Position = 0;
putObjectRequest.InputStream = mstream;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

收到“Stream 不支持写入。”以下代码中出现异常 的相关文章

随机推荐

  • MongoEngine 如何处理索引(创建、更新、删除)?

    关于设置 Mongo 索引的最佳实践问题 Mongoengine 是 Python ORM 包装器 允许您在 Document 元类中设置索引 这个元类什么时候内省并添加索引 我可以通过 mongoengine Document 类构建一个
  • Android旋转动画完成

    我正在研究一个RotateAnimation 我开始旋转图像 但我想知道动画何时完成 我如何知道动画何时结束 下面是我的旋转图像代码 RotateAnimation rotateanimation new RotateAnimation S
  • 如何在Delphi XE4中使用ADOX组件?

    我在一篇用Delphi 6编写的教程中读到 要安装ADOX组件 请从主菜单中选择Project Add type Library菜单项 但在Delphi XE4中没有这样的菜单项 如何在 Delphi XE4 中安装 使用 ADOX 组件以
  • laravel 5.3:UrlGenerator.php 第 314 行中的 ErrorException:未定义路由 []

    这是我在 web php 中的路线代码 Route get login array as gt login admin uses gt Auth LoginController login 控制器方法 public function log
  • 使用 DIV 作为输入

    很抱歉 如果这个问题非常基本 但我正在尝试重新编程 但我仍然坚持这个问题 我想将文本输入到 div 在 HTML 中 但我不想要默认的聊天框 div
  • Docker nginx 反向代理返回 502 bad gateway “连接到上游时连接被拒绝”

    我正在尝试在一个容器中设置 nginx 反向代理到运行我的应用程序的另一个容器 这是我的 nginx conf daemon off user nginx worker processes 1 error log var log nginx
  • 在闪亮的仪表板标题右侧添加文本

    如何在仪表板标题侧栏图标右侧添加文本 似乎以前的类似解决方案在更新后不再起作用dashboardHeader 这就是我试图在基本的闪亮仪表板设置中执行的操作 我可以使用以下策略这个答案 https stackoverflow com a 3
  • 使用 python 和 python NTLM 浏览受 NTLM 保护的网站

    我的任务是创建一个脚本 该脚本登录到企业门户 进入特定页面 下载该页面 将其与早期版本进行比较 然后根据所做的更改向特定人员发送电子邮件 最后一部分很简单 但第一步给我带来了最大的麻烦 在使用 urllib2 我尝试在 python 中执行
  • 在Python中将字符串从split函数转换为整数的有效方法

    我有一串具有以下格式的数据 xpos ypos zoom 即 8743 12083 15 我想将其拆分并存储在变量 xpos ypos 和 Zoom 中 由于我需要对这些数字进行一些计算 因此我想从一开始就将它们转换为整数 目前 我执行此操
  • 使用 css3 进行图像替换和过渡?

    我想知道是否有人知道如何在两个背景图像之间进行过渡的巧妙且新的方法 我知道有很多教程 只是其中大多数都已经过时且过时了 我想知道是否有一种聪明而现代的 CSS3 方法可以做这样的事情 我有一个简单的 logo png 设置为背景div lo
  • 无法将泛型转换为扩展嵌套类型

    最近 当我遇到无法解释的通用转换问题时 我正在重构一个通用方法 最后我意识到我可以完全不用 T 类型 只需自己内联它 但我仍然很好奇为什么转换失败 我创建了这个最小的例子来说明这个问题 有人可以解释一下为什么转换失败而解决方法有效吗 pub
  • 无法实例化fragment找不到Fragment构造函数android

    我遇到以下错误 我在 DailyVerseFragment 上添加了构造函数 但还是不行 我遇到这个问题已经超过一周了 Fatal Exception java lang RuntimeException Unable to start a
  • 如何从终端运行 mvim (MacVim)?

    我安装了 MacVim 并尝试将其设置为 Git 版本控制 的编辑器 但我无法从命令行运行 mvim 因为它无法识别 如何设置 mvim 以便可以从终端运行它 我不认为我会在路径中添加任何东西 是的 brew install macvim
  • 如何编写按日期接收数据的查询?

    我写了一个简单的查询 SELECT date count user as count FROM sessions GROUP BY date 回应是这样的 但是 我想查看每个日期 如果日期不存在 行必须是这样的 2018 02 01 0 2
  • 使用 Cordova 3.1 CLI 构建 Android 应用程序时出错

    我正在尝试通过 Mac 上的终端通过phonegap CLI 运行 cordova build android 首先我下载了 Android SDK 然后我设置了项目并添加了android 然后我尝试 cordova build andro
  • 增长 NSTextView 以适应内容会剪切最后一行文本

    我正在尝试创建一个 NSTextView 它随着用户键入而垂直增长 并在高度达到最大值后滚动 这类似于消息作品中的文本视图 我的第一次尝试使用委托来侦听文本更改并调整与 NSTextView 的滚动视图关联的高度约束 void textDi
  • 在 codeigniter 中卷曲

    我想在我的 codeigniter 应用程序中使用curl 但我得到的是空数组 我的代码是这样的 this gt load gt library curl url http url checkweb php post data array
  • JWT 和签名 cookie 有什么区别?

    我正在调查JWT http jwt io作为传统 Cookie 会话的替代方案 但我看不出它们与签名 Cookie 有何根本区别 例如 Express 通过中间件提供的签名 Cookiecookie解析器 https www npmjs c
  • 如何在 Olingo V4 中创建有界动作 (java)

    我尝试到处寻找 但无法弄清楚如何在 olingo V4 java 中实现有界操作 处处给出无界动作教程 我尝试调整这段代码 final CsdlAction action new CsdlAction action setName test
  • 收到“Stream 不支持写入。”以下代码中出现异常

    我正在尝试将图像上传到 Amazon S3 但在此之前我正在调整图像大小 为了调整大小 我必须传递流对象 并且在某一时刻 注释为 Error 的行 我收到 Stream 不支持写入 例外 请帮忙 public ActionResult Ad