我試圖使用NG文件上傳文件上傳和保存BLOB數據庫爲我剛纔的問題Ng-File-Upload to Save PDF Blob to Database角伍,文件上傳的URL找不到MVC ApiController方法
我相信,我有「正確的「代碼來完成任務,但現在的問題是,我無法讓代碼在ApiController中」打「該方法。如果我把這個方法放在一個常規的異步控制器中,它會發現它(但是我不能使用一半所需的代碼,因爲它不起作用,除非它在從ApiController繼承的控制器中),但它不會在ApiController中找到相同的方法。我錯過了什麼?
這裏是角控制器代碼:
angular.module('myModule').controller('DocumentCtrl', function ($scope, $interval, $window, $filter, $q, $timeout, Upload, $http) {
$scope.uploadPic = function (file) {
file.upload = Upload.upload({
url: '/SSQV4/SSQV5/Document/UploadEMRDocument',
method: 'POST',
data: { file: file }
})
}
}) 這裏是MVC控制器代碼:
public class DocumentController : ApiController
{
public async Task<IHttpActionResult> UploadEMRDocument()
{
try
{
var provider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(provider);
var f = provider.Contents.First(); // assumes that the file is the only data
if (f != null)
{
var filename = f.Headers.ContentDisposition.FileName.Trim('\"');
filename = Path.GetFileName(filename);
var buffer = await f.ReadAsByteArrayAsync();
//buffer now contains the file content,
//and filename has the original filename that was uploaded
//do some processing with it (e.g. save to database)
}
else
{
return BadRequest("Attachment failed to upload");
}
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
return Ok();
}
}
我假定這是某種形式的路由問題,但我米不確定。任何援助非常感謝!
什麼是在您的「使用」聲明頂部?如果我使用System.Net.Http,我無法獲得api控制器。如果我使用System.Web.Http,我不能使用MultipartMemoryStreamProvider。當我嘗試使用它們並完全限定[System.Web.Http.HttpPost]時,它仍然找不到該方法。 –
嗯,我得到了正確的HttpPost,但它仍然沒有擊中控制器方法,並且控制檯仍然顯示404(Not Found) –