загрузить изображение из приложения для Android в веб-API Asp - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть код webapi, который загружает изображение из Интернета и отправляет сообщение, и я не могу загрузить это изображение из своего приложения для Android. Это код webapi: [Route ("AddCafeImage / {CafeId: int}")] public HttpResponseMessage AddCafeImage (int CafeId) {Словарь dict = новый словарь ();попробуй {

            var httpRequest = HttpContext.Current.Request;

            foreach (string file in httpRequest.Files)
            {
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);

                var postedFile = httpRequest.Files[file];
                if (postedFile != null && postedFile.ContentLength > 0)
                {

                    int MaxContentLength = 1024 * 1024 * 1; //Size = 1 MB  

                    IList<string> AllowedFileExtensions = new List<string> { ".jpg", ".gif", ".png" };
                    var ext = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf('.'));
                    var extension = ext.ToLower();
                    if (!AllowedFileExtensions.Contains(extension))
                    {

                        var message = string.Format("Please Upload image of type .jpg,.gif,.png.");
                        dict.Add("error", message);
                        return Request.CreateResponse(HttpStatusCode.BadRequest, dict);
                    }
                    else if (postedFile.ContentLength > MaxContentLength)
                    {

                        var message = string.Format("Please Upload a file upto 1 mb.");

                        dict.Add("error", message);
                        return Request.CreateResponse(HttpStatusCode.BadRequest, dict);
                    }
                    else
                    {
                        var request = HttpContext.Current.Request;
                        string Url = request.Url.GetLeftPart(UriPartial.Authority) + request.ApplicationPath;
                        int id = CafetManager.SaveImage(CafeId, extension,Url);

                        var filePath = HttpContext.Current.Server.MapPath("~/ServiceProviderImages/" + id + extension);

                        postedFile.SaveAs(filePath);
                        var message1 = string.Format("Image Updated Successfully.");
                        return Request.CreateErrorResponse(HttpStatusCode.Created, message1); ;


                    }
                }


            }
            var res = string.Format("Please Upload a image.");
            dict.Add("error", res);
            return Request.CreateResponse(HttpStatusCode.NotFound, dict);
        }
        catch (Exception ex)
        {
            var res = string.Format(ex.ToString());
            dict.Add("error", res);
            return Request.CreateResponse(HttpStatusCode.NotFound, dict);
        }
    }

и java-код андроида:

public void uploadImage (Файл файл) {

    mSubscriptions.add(NetworkUtil.getRetrofit("ar","xxn4zZppNpORV8Kz7RWFizHBTJLiST2qrpu1pTrcjf4fnPOvGLaZkRBdBmvt"
            ,"application/x-www-form-urlencoded")
            .UploadImage("PXTmlji1upXSR0bnxiQv80hJKlk0X3lOQl972U7pB04C9kleL6Od13N23n8G",file)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe(this :: handleResponse, this :: handleError));
}

У меня получилось сообщение: "Пожалуйста, загрузите изображение".пока я добавляю изображение в запрос.Я хочу загрузить изображение в Android с этим кодом WebAPI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...