0

ファイルのバイナリ コンテンツの使用に問題があります。ファイルのコンテンツを Web メソッドに渡したい。javascript関数getAsBinary()を介して、ページのファイルアップロードコントロールから取得します。しかし、クラス Image の例を作成しようとすると、web メソッドでエラーが表示されます。そのため、ファイル アップロード コントロールとスクリプト マネージャーを含むページ (.aspx) があります。3 つの JavaScript 関数があります。

// Get image from fileupload control and pass it in webmethod
function Get_image() {
    var file_uploader = document.getElementById(file_uploader_name);
    var file_content = file_uploader.files[0].getAsBinary();
    imupcon.Get_image(file_content, OnRequestComplete, OnError);
}
// Successful execution
function OnRequestComplete(result) {alert(result);}
//Error execution
function OnError() { alert("Error!");}

そして、私は web-method を持つ web-service を持っています:

[WebMethod]
public string Get_image(string file_content, string file_name) 
{
 byte[] data = Encoding.Unicode.GetBytes(file_content);
 MemoryStream memStream = new MemoryStream();
 memStream.Write(data, 0, data.Length);

 //Error appears here
 System.Drawing.Image image = System.Drawing.Image.FromStream(memStream);

 memStream.Close();
 return "Hurray!";
}

理由は何ですか?ファイルのコンテンツを Web メソッドに渡すにはどうすればよいですか? ありがとう。

4

1 に答える 1

1

Encoding.Unicode.GetBytesすでにバイナリになっているので、必要ありません。を呼び出すと、データはUnicodeになりますfiles[0].getAsText("utf-8")。これらのメソッドはすべて廃止されたため、機能検出を使用し、使用可能な場合は標準のFileReaderAPIを使用する必要があることに注意してください。

于 2009-11-30T18:31:42.650 に答える