使用API​​错误结果的AngularJS / WebAPI图像上传

时间:2015-07-17 18:34:48

标签: asp.net json angularjs asp.net-web-api

我希望使用Deviantsart的公共API来托管我正在处理的项目的一些图像。

我遇到的问题是我没有通过网址获取JSON结果,而是获取整个网页。

他们的指示相对简单

  

使用我们的公共REST API上传:POST http://deviantsart.com yourimage.jpg

     

然后返回带有URL的JSON-Result:

{ "url" : "urltoimage" }

这是我的代码。

的WebAPI

[HttpPost]
    public async Task<HttpResponseMessage> UploadGliderData()
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            this.Request.CreateResponse(HttpStatusCode.UnsupportedMediaType);
        }
        var httpPostedFile = HttpContext.Current.Request.Files["file"];
        using (var client = new HttpClient())
        {
            using (var content =
                new MultipartFormDataContent())
            {
                var image = new Bitmap(httpPostedFile.InputStream);
                var stream = new MemoryStream();
                image.Save(stream, ImageFormat.Jpeg);
                var imgContent = new StreamContent(stream);
                imgContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
                content.Add(imgContent);

                using (
                   var message =
                       await client.PostAsync("http://deviantsart.com", content))
                {
                    var input = await message.Content.ReadAsStringAsync();
                    return this.Request.CreateResponse(HttpStatusCode.OK, input);

                }
            }
        }
    }

AngularJS控制器

function upload(files) {
    if (files && files.length) {
        for (var i = 0; i < files.length; i++) {
            var file = files[i];
            Upload.upload({
                url: '/api/SGWebAPI/UploadGliderData',
                method: 'POST',
                data: $scope.glider,
                file: file
            })
            .success(function (data, status, headers, config) {
                debugger;
                console.log('file ' + config.file.name + 'uploaded. Response: ' + data);
            }).error(function (data, status, headers, config) {
                debugger;
                console.log('error status: ' + status);
            });
        }
    }

结果

可以找到输入值Here

提前谢谢

0 个答案:

没有答案