2011-10-21 49 views
0

我想读取文件的内容使用文件对话框,然后将其保存在一个字节数组打开它传递到Web服务将整个文件读入一个字节数组中的WinForms

 Stream myStream; 
     OpenFileDialog saveFileDialog1 = new OpenFileDialog(); 

     saveFileDialog1.Filter = "zip files (*.zip)|*.zip|All files (*.*)|*.*"; 
     saveFileDialog1.FilterIndex = 2; 
     saveFileDialog1.RestoreDirectory = true; 

     if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      if ((myStream = saveFileDialog1.OpenFile()) != null) 
      { 

       NSITESERVICE.UploadSoapClient obj = new NSITESERVICE.UploadSoapClient(); 

       byte[] filebytes = //what should i pass it over here... 

       obj.UploadFile("kamal", "[email protected]", filebytes); 

       // Code to write the stream goes here. 
       myStream.Close(); 
      } 
     } 

我不知道我在哪里错了

任何帮助表示赞赏。 Thnaks

+0

我应该传递给byte [] filebytes。 – Moons

回答

4

你没有分配任何东西给filebytes变量,所以你实质上是将null传递给服务。使用File.ReadAllBytes方法读取所有字节并将其传递给web服务。

+0

是的,我传递null。那是我的问题,我应该通过什么。请帮忙 – Moons

+0

谢谢你解决我的问题 – Moons

3

你实际上没有读取myStream中的字节。

byte[] fileBytes = new byte[myStream.Length]; 
myStream.Read(fileBytes,0,mystream.Length); 

obj.UploadFile(...) 
+2

这是假设整个文件将在一次调用中读取。这是一个危险的假设。 –

+0

这解决了我的问题 – Moons

+0

@JonSkeet然后应该做什么。你可以建议 – Moons