2

マンゴーで利用可能なBackgroundTransferServiceを使用して、MVC3サイトにオーディオファイルをアップロードできるようにするにはWindows Phoneアプリケーションが必要です。Windows PhoneによるファイルのアップロードRESTfulな方法でMVC3サイトへのBackgroundTransferサービス

一つの可能​​な解決策として、私がすることができます

[HttpPost]  
public JsonResult Recieve(byte[] audio) 
    { 
     // saving and status report logic here 
    } 
レシーブ作用を有し、コントローラで

public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "SingleAudioFile", 
       "Api/Audio/Recieve", 
       new { controller = "AudioFiles", action = "Recieve" } 
       ); 
     } 
    1. は私のコントローラへのルートの地図は、

      私の質問はです:Windows PhoneからアップロードするファイルをRecieveアクションのaudio byte []パラメータにバインドするようにシステムを設定するにはどうすればよいですか?電話で

      、データは次のようにアップロードされている:

      BackgroundTransferRequest btr = new BackgroundTransferRequest (new Uri 
             (siteUrl + "Api/Audio/Recieve",UriKind.Absolute)); 
          btr.TransferPreferences = TransferPreferences.AllowBattery; 
          btr.Method = "POST"; 
          btr.UploadLocation = new Uri("/" + Transfers + "/" + isoAudioFileName, UriKind.Relative); 
      Microsoft.Phone.BackgroundTransfer.BackgroundTransferService.Add(btr); 
      
  • 答えて

    0

    を私は何のプロトコルBackgroundTransferは、ファイルを送信するために使用しない、非常にわからないが、それは本体に直接バッファを書き込むと

    public class BTModelBinder : IModelBinder 
    { 
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
        { 
         using (var ms = new MemoryStream()) 
         { 
          controllerContext.HttpContext.Request.InputStream.CopyTo(ms); 
          return ms.GetBuffer(); 
         } 
        } 
    } 
    

    そうのように登録することができます:

    [HttpPost] 
    public ActionResult Receive([ModelBinder(typeof(BTModelBinder))] byte[] audio) 
    { 
        ... 
    } 
    
    POSTを使用して、要求ストリームから直接読み取るために、カスタムモデルバインダーを使用することができ要請します

    multipart/form-dataを使用する場合は、標準HttpPostedFileBaseアクションパラメータをshown hereとして使用できます。

    +0

    ありがとうございました。私は今日のアプローチを試し、それがうまくいくなら答えをマークするために戻ってきます。 BackgroundTransferServiceについては、BTS研究所のトレーニングキットをリリースしましたが、サーバー側のソースコードを提供していないため、詳細な調査を行うことなく、サーバー処理の実装方法を確認する方法はありません。 –

    関連する問題