2

i want to upload image using Angularjs anyone know how do this..REST API wants

Content-Type:multipart/form-data

www.abc.com/images/id
Request Body
{
    // --Boundary_1_1626119499_1392398808202
    // Content-Type: image/png
    // Content-Disposition: form-data; filename="ducky.png"; modification-date="Wed, 05 Nov 2016 19:53:17 GMT"; size=713915; name="upload_image"        

    // {binary data truncated for display}
}

my Question is how to upload image file using above rest API, how to assign $scope.tempObject = my Upload image Path

 $scope.UploadImage =  function () { 
        var config = {headers:  {      
    'Content-Type': 'multipart/form-data'

       }
        }

    $http.post(properties.customerUploadImage_path + "/"+checkprofile,$scope.tempObject,config).success(function (response) { 
 Console.log('Uploaded');
    });


    } 
2
  • use Content-type : undefined Commented Nov 29, 2016 at 14:34
  • 1
    Hi, you should consider using this lib. It really did the trick for me :) github.com/danialfarid/ng-file-upload Commented Nov 29, 2016 at 14:43

2 Answers 2

1

I think you don't use $http the right way.

You can use the headers attribute of the $http service, like this :

$scope.UploadImage = function () { 
  var config = {
    headers: {      
      'Content-Type': 'multipart/form-data',
    }
  };

  $http({
    method: 'POST',
    url: properties.customerUploadImage_path + "/" + checkprofile,
    data: $scope.tempObject,
    config: config,
  }).success(function (response) { 
    console.log('Uploaded');
  });


};

I suggest you to take a look at the documentation.

Sign up to request clarification or add additional context in comments.

Comments

1

Configure the headers with "Content-Type": undefined and use the FormData API:

  var config = { headers: {
                   "Content-Type": undefined,
                  }
               };

  vm.upload = function() {

    var formData = new $window.FormData();

    formData.append("file-0", vm.files[0]);

    $http.post(url, formData, config).
     then(function(response) {
      vm.result = "SUCCESS";
    }).catch(function(response) {
      vm.result = "ERROR "+response.status;
    });
  };

Normally the AngularJS $http service uses Content-Type: application/json. By setting Content-Type: undefined, the framework will omit the Content-Type header and the browser will use its default content type which is multipart/form-data for FormData objects.

Request Header

POST /post HTTP/1.1
Host: httpbin.org
Connection: keep-alive
Content-Length: 388298
Accept: application/json, text/plain, */*
Origin: https://run.plnkr.co
User-Agent: Mozilla/5.0 Chrome/55.0.2883.54 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary9lBDT4yoh8lKWtIH
Referer: https://run.plnkr.co/cW228poRVzWs67bT/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8

Request Payload

------WebKitFormBoundary9lBDT4yoh8lKWtIH
Content-Disposition: form-data; name="file-0"; filename="Crop.jpg"
Content-Type: image/jpeg


------WebKitFormBoundary9lBDT4yoh8lKWtIH--

The DEMO on PLNKR.

For more information see,

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.