2

Plupload というサードパーティのアップローダを使用しています。選択した画像を WebAPI メソッドに渡したいのですが、方法がわかりません。

フロントエンドで私はファイルオブジェクトを投稿します

uploader.bind('FileUploaded', function (up, file) {

        data = { name: file.name, id: file.id, size: file.size, key: path };

        $.ajax({
            url: sf.getServiceRoot('mysite') + "upload/getS3Client",
            type: "POST",
            data: data,
            beforeSend: sf.setModuleHeaders
        }).done(function (response, status) {
            alert(response);
        }).fail(function (xhr, result, status) {
            alert("error: " + result);
        });
    });

バックエンドでファイルオブジェクトを受け取りましたが、それをどうするかわかりません...

私が使用しようとしたMVCコードスニペットがありますが、明らかにWeb APIはRequest.Files [0]をサポートしていないため、迷っています。これはスニペットです

 HttpPostedFileBase file = Request.Files[0];
if (file.ContentLength > 0) // accept the file
{
                string accessKey = "XXXXXXXXXXX";
                string secretKey = "122334XXXXXXXXXX";
                AmazonS3 client;

   using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey))
     {
          PutObjectRequest request = new PutObjectRequest();
          request.WithBucketName("mealtik")
         .WithCannedACL(S3CannedACL.PublicRead)
         .WithKey("meals/test.jpg").InputStream = file.InputStream;
        S3Response response = client.PutObject(request);
     }
}

私の方法は次のようになります..現在流動的です。

public HttpResponseMessage getS3Client(file submitted)
    {
        HttpRequestMessage request = this.Request;

            string accessKey = "xxxx";
            string secretKey = "xxxx";
            AmazonS3 client;
        using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey ))
        {
           MemoryStream ms = new MemoryStream();
           PutObjectRequest request = new PutObjectRequest();
           request.WithBucketName("Dev");
           .WithKey("drop/" + submitted.name).InputStream = file.InputStream;
           S3Response response = client.PutObject(request);
        }


        return Request.CreateResponse(HttpStatusCode.OK, "Success");
    }

それを要約します。ファイルオブジェクトをメソッドに渡し、それをAmazon s3にプッシュしようとしています.MVCメソッドは見た目どおりに動作しますが、Web APIには同じことが当てはまりません.

どうすればこれを行うことができますか?

4

0 に答える 0