2

サーバー上でその文字列をファイルに戻すことができるように、wav ファイルを json オブジェクトの一部としてサーバーに送信できる文字列に変換しようとしています。

readAsBinaryString を使用してテキストとして読み取ろうとしましたが、文字列をバイト配列に読み取る際に過去のエラーを取得できません。

 reader.onloadend = saveMedia;
 reader.readAsText(Blob);
 //reader.readAsBinaryString(Blob); also tried.

次に、コールバックは「reader.result」に文字列を保持するオブジェクトを含むajaxリクエストを送信し、サーバーで次のようなことを試しました:

System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); 
byte[] BinaryData = encoding.GetBytes(stringFromRequest);

以下のこの質問に対する答えは、これを行うべきではないということのようです。しかし、私が使用している別のツール(breeze js)のために、私は本当にこの方法でやりたいと思っています。ファイル データ型で個別の投稿アクションを使用したくない。

関連: ファイル API - Blob から JSON へ

4

3 に答える 3

4

うまくいく方法を見つけました:

  var reader = new FileReader();
  reader.onloadend = afterRead;
  reader.readAsBinaryString(blob);

function afterRead() {
// convert binary string to base64 for a safe transfer to the server.       
   entity.BinaryProp = window.btoa(reader.result);       
}

サーバー側:

string BinaryString = (string)entityInfo.UnmappedValuesMap["BinaryProp"];
byte[] BinaryData = Convert.FromBase64String(BinaryString);  
于 2013-09-23T03:35:10.740 に答える