当前位置: 代码迷 >> ASP.NET >> 将InputStream转换为byte[].下传的就是损坏的.
  详细解决方案

将InputStream转换为byte[].下传的就是损坏的.

热度:5328   发布时间:2013-02-25 00:00:00.0
将InputStream转换为byte[].上传的就是损坏的...
方法一:这种方法是可以正常保存图片
C# code
    HttpPostedFile oFile = HttpContext.Current.Request.Files[HttpContext.Current.Request.Files.AllKeys[0]];                oFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("~") + sFileName);//上传图片

方法二:这种方法保存的图片是无法打开的.因为要用到webservice上传.需要传递流或者是二进制.传流过去的上传也无法正常保存图片.
C# code
    HttpPostedFile oFile = HttpContext.Current.Request.Files[HttpContext.Current.Request.Files.AllKeys[0]];                  using (FileStream fs = new FileStream(sFilePath, FileMode.Create, FileAccess.Write, FileShare.None))                            {                                 const int bufferLen = 4096;                                byte[] buffer = new byte[bufferLen];                                int count = 0;                                while ((count = oFile.InputStream.Read(buffer, 0, bufferLen)) > 0)                                {                                    fs.Write(buffer, 0, count);                                }                                fs.Close();                                oFile.InputStream.Close();                            }


求解..谢谢.

------解决方案--------------------------------------------------------
byte[] buffer = new byte[oFile.ContentLength]; 
System.IO.Stream fs;
fs = (System.IO.Stream)oFile.InputStream; 
fs.Read(buffer, 0, oFile.ContentLength)
WebService1.UploadFile(b, FileName); 
fs.Close();
------解决方案--------------------------------------------------------
InputStream的类型就是System.IO.Stream类型的,其实不用转
http://msdn.microsoft.com/zh-cn/library/system.web.httppostedfile.inputstream.aspx
------解决方案--------------------------------------------------------
如果说WS上传的就是损坏的
可能是因为WS 传输的时候,数据流被截断了
没有完全传过去
  相关解决方案