I am getting this error:
Invalid 'HttpContent' instance provided. It does not have a content type header starting with 'multipart/'. Parameter name: content
when I am trying to upload file through angularjs using FormData(). I don't know what I am doing wrong.
HTML code:
<form method="post" enctype="multipart/form-data" ng-model="myform">
<input type="file" file-model="file1" name="file" /> Upload file
<div style="margin-bottom: 12%; margin-top: 5%;">
<div style="float: right;">
<button class="btn btn-primary" ng-click="CreatePDF()">Save</button>
</div>
</div>
</form>
Angularjs code
$scope.CreatePDF = function () {
var file = document.getElementsByName("file");
var formData1 = new FormData();
formData1.append('file', file[0].files[0], 'test.pdf');
API_immigration.converttoBytes.filesBytes(formData1).then(function (res) {
alert('hi uploaded');
});
}
This is my service file calling API from angularjs
var converttoBytes = {
filesBytes: function (p) {
return $ajax.post('/api/immigration/application/getFileObj/dddd', p, {
contentType: 'multipart / form - data'
}
);
}
Here is my API written in asp.net:
[HttpPost]
[Route("getFileObj/{path}")]
public async Task<string> postuploadfile()
{
var ctx = HttpContext.Current;
var root = ctx.Server.MapPath("~/App_Data");
var provider = new System.Net.Http.MultipartFormDataStreamProvider(root);
try
{
// Read the form data.
await Request.Content.ReadAsMultipartAsync(provider);
// This illustrates how to get the file names.
foreach (var file in provider.FileData)
{
var name = file.Headers.ContentDisposition.FileName;
name = name.Trim('"');
var localFileName = file.LocalFileName;
var filepath = Path.Combine(root, name);
File.Move(localFileName, filepath);
}
}
catch (System.Exception e)
{
}
return "Fileuploaded";
}
I have used $http service ,but still i am getting same error, here is my raw data from filddler.
POST /api/immigration/applicationtemplate/getFileObj/dddd HTTP/1.1
Host: localhost:31002
Connection: keep-alive
Content-Length: 120145
Content-Type: multipart / form - data
Pragma: no-cache
Cache-Control: no-cache Accept: /
Origin: localhost:9002
Authorization: bearer earer pJhzAZ1D_tnFCY
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9 –