0

Ben dosya yüklemek ve ben olduğuna inanıyorum Ng-File-Upload to Save PDF Blob to DatabaseEğik Ng-Dosya-Yükle url MVC ApiController Yöntemi bulamıyorum

benim önceki soruya olduğu gibi veritabanına blob kaydetmek için ng-file-yüklemesi yapmak için çalışıyorum " görevi tamamlamak için "kodu doğru", ancak sorun şu ki, ApiController'daki yöntemi "isabet ettirmek için" kodu alamıyorum. Yöntemi normal bir async denetleyicisine koyarsam, onu bulur (ancak ApiController'den devralınan bir denetleyicide çalışmadığı sürece kodun yarısını kullanamıyorum çünkü) ApiController'da aynı yöntemi bulun. Neyi kaçırıyorum?

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 } 
    }) 
} 

}) İşte MVC denetleyicisi Kod geçerli:: İşte

Eğik Kontrolörü Kodu olduğu

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(); 

    } 
} 

Ben bu sorunu yönlendirme çeşit olduğunu varsayarak, ama ben' emin değilim. Herhangi bir yardım büyük beğeni topluyor!

cevap

0

: Sadece HttpPost niteliğini ekleyin. Yardımınız için teşekkürler Nava-Prev.Queti!

0

Yükleme, dosyayı göndermek için Http POST kullanıyor, ancak eylem yönteminizin POST dinlemesi gerektiğini belirtmediniz. Ben şimdi

url: '/SSQV4/SSQV5/api/Document/UploadEMRDocument' 

onu vurur url değiştirmek için gereken

[HttpPost] 
public async Task<IHttpActionResult> UploadEMRDocument() 
+0

"Using" ifadenizde en üste ne var? System.Net.Http kullanırsam, bir api denetleyicisi alamıyorum. System.Web.Http kullanırsam, MultipartMemoryStreamProvider kullanamaz. Her ikisini de kullanmaya çalıştığımda ve [System.Web.Http.HttpPost] 'u tam olarak nitelendirdiğimde hala yöntemi bulamıyor. –

+0

Eh, HttpPost'u doğru bir şekilde aldım, ancak hala denetleyici yöntemini kullanmıyor ve konsol hala 404 diyor (Bulunamadı) –