日期:2014-05-17  浏览次数:20412 次

将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 传输的时候,数据流被截断了
没有完全传过去