Send zip request from angularjs using $ http

I am using $ http on angularjs and I have a pretty big send request.

I am wondering if there is a way to do something like this:

content = "I'm a very long content string!" $http.post content, url, 'gzip' 

and the content request is sent automatically, and add the appropriate request header so that the server knows that you need to unpack the content and pass it to the controller correctly.

I can gzip the content on my side and re-open it manually on the server, but I thought there must be some way to do this automatically. There is?

+5
source share
1 answer

See this post, as if you can specify a parameter on the model so that the server can decide if the content is a file, and if the file should be unpacked first

 function Ctrl($scope, $http) { //a simple model to bind to and send to the server $scope.model = { gzip: true, file: true }; //an array of files selected $scope.files = []; //listen for the file selected event $scope.$on("fileSelected", function (event, args) { $scope.$apply(function () { //add the file object to the scope files collection $scope.files.push(args.file); }); }); //the save method $scope.save = function() { $http({ method: 'POST', url: "/Api/PostStuff", //IMPORTANT!!! You might think this should be set to 'multipart/form-data' // but this is not true because when we are sending up files the request // needs to include a 'boundary' parameter which identifies the boundary // name between parts in this multi-part request and setting the Content-type // manually will not set this boundary parameter. For whatever reason, // setting the Content-type to 'false' will force the request to automatically // populate the headers properly including the boundary parameter. headers: { 'Content-Type': false }, //This method will allow us to change how the data is sent up to the server // for which we'll need to encapsulate the model data in 'FormData' transformRequest: function (data) { var formData = new FormData(); //need to convert our json object to a string version of json otherwise // the browser will do a 'toString()' on the object which will result // in the value '[Object object]' on the server. formData.append("model", angular.toJson(data.model)); //now add all of the assigned files for (var i = 0; i < data.files; i++) { //add each file to the form data and iteratively name them formData.append("file" + i, data.files[i]); } return formData; }, //Create an object that contains the model and files which will be transformed // in the above transformRequest method data: { model: $scope.model, files: $scope.files } }). success(function (data, status, headers, config) { alert("success!"); }). error(function (data, status, headers, config) { alert("failed!"); }); }; }; 
0
source

All Articles