2017-03-04 18 views
0

私はxamarin.formsから画像をアップロードし、apiサービスのためにrestsharpを使用しようとしています。Xamarin [RestSharp] + [Xam.Plugin.Media]アップロードモデル

RestRequest uploadPostRestRequest = new RestRequest("post/create/", Method.POST); 
uploadPostRestRequest.AddJsonBody(uploadPostRequest); 

と、これは問題があるUploadPostRequest

public class UploadPostRequest 
{ 
    public string content; 
    public byte[] image; 
} 

私のモデルでは、byte[]として、画像の種類を設定してそれが正しいのですか? サーバーはこれを受け入れますか?それをやり直すのか?

RestSharpにこれ以上の素晴らしいコントロールがある場合は、MediaFileXam.Plugin.Mediaから入力して、すぐにアップロードできます。 Xam.Plugin.Mediaは、モバイルデバイスから画像を取り込むために使用されます。

あまりにも多くのオプションので、それはなぜ私は良いアドバイスを提供しています。

誰かが同じ経験に直面した場合は、助けてください。

追加情報については、私はSystem.IO.Fileを使用できません.Xamarin.Formsは私にそれを使用させません。

+0

Restharpは 'MediaFile'が何であるかを理解しませんが、このオブジェクトからbytes []を取得してリクエストペイロードの一部として投稿することができます。 PCLの – apineda

+0

では、File.ReadAll()のようにSystem.IO.Fileを使用することはできません。バイト[]または新しいアプローチに変換するための他のオプション? – uzu

答えて

1

Xam.Plugin.Mediaがカメラまたはライブラリからメディアを読み込むと、MediaFileが返されます。

byte[] byteArray; 
using (var memoryStream = new MemoryStream()) 
{ 
    mediaFile.GetStream().CopyTo (memoryStream); 
    mediaFile.Dispose(); 
    byteArray = memoryStream.ToArray(); 
} 

今、あなたはあなたは自分のバックエンドに画像をアップロードする方法にそれを渡す必要があるバイト配列を持っている:このオブジェクトは、このような何かを持つバイト配列への変換器とすることができます。

+0

ああ、ありがとう、私はそれを試してみましょう! – uzu

+0

まあ...私はこのエラーを取得します.. <<< System.ObjectDisposedException、配置されたオブジェクトにアクセスすることはできません。 オブジェクト名: 'System.Net.Sockets.NetworkStream'。>>> – uzu

+0

これは、処理する前にアクセスする必要があることを意味します。Mediaプラグインからオブジェクトを取得するコードを示すポストを更新しました – apineda

関連する問題