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

时间: 2024-10-07 22:46:44

InputStream只能读取一次的解决办法 C# byte[] 和Stream转换的相关文章

pureftp 读取目录列表失败解决办法

最近在使用pureftp的时候遇到了文件目录无法读取或者读取很慢的问题,同时服务器上配置了iptables防火墙规则,问题主要由此引起. 解决方法如下: 1.首先查看是否开启了20.21端口,如果没有请开启. 2.停止iptables:service iptables stop,再次连接,可以成功读取列表. 3.修改iptables-config配置文件: 打开:vim /etc/sysconfig/iptables-config 将IPTABLES_MODULES修改为:IPTABLES_MO

ie11只能用管理员身份打开解决办法

解决IE11只能用管理员身份运行的问题 不知道大家有没有遇到这种情况,在毫不知情的情况下 IE11 突然打不开了,必须要用管理员身份运行才可以打开,而且重置浏览器这个方法也不奏效. 今天本人也遇到了,上网查找发现是注册表权限的问题,原因尚不明确,安装了或被安装了某些软件(你明白是哪些软件的)会导致这类问题 ,按照如下操作即可修复: 1,Win + R,输入 regedit,定位到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

xshell连接服务器无法用password登录,只能用public key的解决办法

本文链接:https://blog.csdn.net/qq_39028239/article/details/76254429 xshell无法用password登录服务器,只能用public key的解决办法 如上图只能用public key登录,这是在17年申请的阿里云免费体验半年的服务器上遇到的 那么我们用阿里云后台的远程连接按钮进入服务器,进入后 修改/etc/ssh/sshd_config文件配置, PasswordAuthentication yes 是否可以密码认证,修改成yes

android端读取本地图片出现OutOfMemoryException解决办法

前些日子一直为图片内存溢出问题困扰着,查了N多资料,将google彻底翻遍了都没找到解决方案,就当我几乎绝望的时候意外发现了一位网友的一个工具类,抱着最后一丝希望将代码co过来试了一把,结果令我喜出望外.嘿,解决了!暂不说多么欢喜了,听我慢慢道来这其中的前因后果吧! 需求:下载时候将图片一并down下来,在空间里显示并支持离线观看 第一个版本代码: //从本地读取图片 public Bitmap getBitmapFromSD(String filename) { FileInputStream

Linux+Sublime 开发C/C++ 中无法读取cin/scanf 的解决办法

Q:sublime在Ubuntu环境下配置好,能使用gcc编译运行程序后,发现cin,scanf 这样的命令不执行 A:sublime自带的控制台不支持这样的输入操作,解决办法就是调用Linux本地终端,在终端上执行程序,  网上关于windows下调用cmd的例子已经好多了,可是却很少找到Linux环境下的配置方法, 以下是我自己总结的方法,自己感觉很好用,希望可以帮到需要的朋友. 1.Sublime界面-->Tools-->Build System-->New Build Syste

Spring @ResponseBody只能返回String类型数据解决办法

今天自己搭Spring MVC框架玩,使用AJAX调用Spring controller 并返回map对象,突然发现,哎,怎么@Response中只能返回String, 我用的Spring 3的版本也不低啊,百思不得其解,遂去官方论坛查找原因,好家伙,好多人都有这个经历,而且貌似有些官方人员也说不清怎么解决,人家提问题的都嚷嚷着要去提交bug了(看来官方支持人员也有渣渣啊).于是去spring-vramework官网查看文档,有如下描述Jackson  is supported directly

IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法

申明:      下面安装PP源的方法已经失效,请不用按照下面的方法操作.      更新最新的方法,在cydia中搜索源 apple file conduit "2" ,安装完成即可解决. 1,首先在手机上运行越狱程序cydia,等待加载完毕后,添加PP源 apt.25pp.com 2,添加成功之后,返回源列表,找到PP助手源,点击计入后我们选择全部软件包 3,进入后下拉,找到PP助手afc2补丁和PP助手ipa补丁,可先安装ipa补丁,再安装afc2补丁,afc2补丁需要重启手机.

PHP MYSQL读取中文乱码的解决办法

其他试了很多种办法,结果最直接最简单的办法就是在SELECT前先发送设置.如下 mysqli_query($con,"SET NAMES 'UTF8'"); mysqli_query($con,"SET CHARACTER SET UTF8"); mysqli_query($con,"SET CHARACTER_SET_RESULTS=UTF8'");  $result = mysqli_query($con,$querySql);

关于springmvc时request的getReader()和getInputStream()只能调用一次的解决办法

最近准备在原有的SSM项目的基础上添加完善的日志分析,由于是APP的后台系统,之前在规划APP的时候,并没有在APP上做埋点的处理,而如果想要进行埋点处理的话,对于未能新升级的APP用户来说,就是去了意义,因为只要用户不升级,埋点就不能在他的APP中运行.所以,就考虑到了在后台的入口增加日志的监控. 想法总是简单,但是在实际实现的过程中却还是遇到了问题.由于APP基本都采用公参的加密校验,然后采用POST请求传递JSON数据.对于一般的请求分析,比如每个时间段的访问量,或者每个方法每个某块的统计