InputStream只能读取一次的解决办法 C# byte[] 和Stream转换
x
情景--->>>
导入文件的时候,前台传过来一个文件, 后台接到: HttpPostedFileBase file = Request.Files[0];
由于对这个文件后台处理比较多,读取里面的内容,还要将其转换为Stream写入一个新的文件...
以前的做法是↓
↓
新建一个MemoryStream实例进行操作>>> Stream stream = new MemoryStream(); file.InputStream.Seek(0, SeekOrigin.Begin); file.InputStream.CopyTo(stream);
x
今天我还是这么做,报错了... 决定找个一劳永逸的方法, 搜索出来的都是Java的解决方案... 不过中心思想把握了:"但第一次读取InputStream对象后,第二次再读取时可能已经到Stream的结尾了(EOFException)或者Stream已经close掉了。" 可以放到byte数组里面,想用的话,直接转换为文件流就行了!!!
x现在解决方案x就是想讲Stream转换为byte[]就行了>>>
Stream stream = file.InputStream;//new MemoryStream(); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); //设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); //将bytes转换为流 //Stream newStream = new MemoryStream(bytes);
完美...至少现在没报错...哈哈...
x
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了