0

ユーザーがアプリケーションを介してファイルをアップロードできるようにしたい。DB アクセス権がありません。すべてのデータ呼び出しは、別の人が作成している Web サービスを介して完了します。Web サービスを保護する必要があったため、それを使用して WebAPI 経由で公開し、OAuth セキュリティを追加しました。

今私の問題に。

以下を書きました。

        public Task<FileResult> Post()
        {
             if (Request.Content.IsMimeMultipartContent())
             {     
                  var task = Request.Content.ReadAsByteArrayAsync().ContinueWith(
                         o =>
                        {
                            var result = this.Client.UploadPicture(this.UserId, o.Result);

                            if (result.ResultCode == 0)
                            {
                                return new FileResult()
                                {
                                    Message = "Success",
                                    FileId = result.ServerId
                                };
                            }

                       throw new HttpResponseException(...);
                  });

              return task;
             }
        ...
       }

WebAPIとマルチスレッドに関しては、私はほとんど初心者です(なぜこれを非同期で処理する必要があるのか​​ わかりません。理由があると確信していますが、今のところ、実際の例が欲しいだけです後で理由に..)。

私のコードは、ネットで見つけたいくつかの研究開発とサンプルに大まかに基づいていますが、完了する必要があるようなシナリオに出くわしていません...それでも、何かをやっているようには見えません普通の...

ファイルをサーバーにアップロードし、イメージのバイト[] オブジェクトを SQL または別のサービスに渡しますか?

この行で

    var result = this.Client.UploadPicture(this.UserId, o.Result);

何かの byte[] 配列をアップロードしています....

その後(取得方法が機能し、テスト画像を取得して表示できました)

アップロードした「画像」のバイト配列を取得すると、idk の配列が取得されます..EG、何かの有効な結果が得られますが、画像ではありません。これは、アップロードされたデータが偽物であると私に信じさせます:|

O_o 画像バイト[]を取得するには?

4

1 に答える 1

2

Mime Multipartは単なるバイト配列ではありません。また、メタデータと境界のものもあります。それを MultiPartContent として扱い、そこから画像バイト配列を抽出する必要があります。Filip は、このテーマに関するブログ投稿をここに掲載しています。

于 2013-08-31T21:08:26.400 に答える