2011-10-21 15 views
2

Windowsアプリケーションを使用してファイルをWebサービスにアップロードして、Webサービスがそのファイルを処理できるようにしたいとします。WindowsフォームからASP.NET Webサービス(ASMX)を使用してファイルをアップロードする

どうすればいいか教えてください。

私は、文字列、int、これらのタイプのみを送信するためにWindowsフォームでWebサービスを使用できることを知っています。しかし、ファイルはどうですか?

任意のヘルプを使用WebServiceの場合

答えて

1

ウィル呉あなたは常にあなたのWebサービスに入力として[]バイトを取るWebメソッドを宣言することができます言ったように、しかし、あなたはそれがあなたの中にあるようバイト配列を送信するために好きではない場合Webサービスの呼び出し、あなたは常にあなたのクライアントからのbase64文字列に[]バイトをエンコードし、バイトをデコードすることができます[]サーバー側で

のWebServiceサンプルウェブメソッド

[WebMethod] 
    public bool UploadFile(string fileName, string uploadFileAsBase64String) 
    { 
     try 
     { 
      byte[] fileContent = Convert.FromBase64String(uploadFileAsBase64String); 

      string filePath = "UploadedFiles\\" + fileName; 
      System.IO.File.WriteAllBytes(filePath, fileContent); 
      return true; 
     } 
     catch (Exception) 
     { 
      return false; 
     } 
    } 

クライアント側のBase64文字列生成

public string ConvertFileToBase64String(string fileName) 
    { 
     byte[] fileContent = System.IO.File.ReadAllBytes(fileName); 
     return Convert.ToBase64String(fileContent); 
    } 

代わりにバイト配列の文字列として文字列にあなたのファイルを変換し、Webサービスに送信するために、上記の方法を使用し

2

を理解され、我々がバイト配列PARAMおよびそのようなバイトとして 恥骨空隙UploadFile(バイト()、ファイル名などの文字列PARAMをとる特定のWebメソッド を定義するのが一般的です

次に、 WSDL.EXEまたはVS.NETを使用してeasytouseクライアントプロキシクラスを生成できるので、.NETアプリケーションで簡単に呼び出すことができます。

Reference

+0

ことのバイト[] C#で –

関連する問題