0
基本的に私が望むのは、mi web apiにファイルを送信し、それを紺碧にアップロードすることです。 ファイルを選択するとこのコードがトリガされますが、正しいかどうかわかりません。 asp.net web apiにファイルを送るにはどうすればいいですか?
$scope.fileNameChanged = function(files)
{
var formD = new FormData();
var reader = new FileReader();
reader.onload = function(e)
{
$scope.$apply(function()
{
$scope.files = reader.result;
});
};
formD.append("file",files.files[0]);
reader.readAsText(files.files[0]);
$http({
method: 'POST',
headers: {'Content-Type': undefined},
data:{formD},
transformRequest : angular.identity,
url: 'http://localhost:12199/api/FacturacionWeb/PostFormData'
}).success(function(data)
{
}).then(function(dat)
{
})
}
<input type="file" multiple onchange="angular.element(this).scope().fileNameChanged(this)">
<div>Import file...</div>
<div>
<textarea ng-model="files" accept=".txt" readonly="true" style="width:99%; height:500px" disabled></textarea>
ASP.NET C#コード(バックエンド) このコードは、私がバックエンドで得るものですが、常にあれば "UnsupportedMediaType" 私はいけないが、知ってもらいます問題は、角であるか、またはASPで私を助けてください!
public async Task<HttpResponseMessage> PostFormData(HttpRequestMessage request)
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
try
{
// Read the form data.
await Request.Content.ReadAsMultipartAsync(provider);
// This illustrates how to get the file names.
foreach (MultipartFileData file in provider.FileData)
{
Trace.WriteLine(file.Headers.ContentDisposition.FileName);
Trace.WriteLine("Server file path: " + file.LocalFileName);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (System.Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
}