1

Вот мой стороне клиента HTML (я нг файл загрузки)ASP .NET загрузить файл WEB API MVC ядро ​​показывает ошибку, используя угловую JS

<button type="file" ngf-select="uploadFileToUrl($file)" 
     ngf-max-size="100MB"> 
    <!--ngf-max-height="1000"--> 
    Photo 
</button> 

Вот мой клиент сторона JS

$scope.uploadFileToUrl = function (file) { 
     console.log(file) // Here console prints my file information 
     alert(file); 
     var data = new FormData(); 
     data.append('photo', file) 

     $.ajax({ 
      type: "POST", 
      url: "http://localhost:22475/api/FileUpload", 
      contentType: false, 
      processData: false, 
      data: data, 
      success: function (message) { 
       alert(message); 
      }, 
      error: function() { 
       alert("There was error uploading files!"); 
      } 
     }); 
    } 

Вот моя сторона сервера

private IHostingEnvironment hostingEnv ; 

    public FileUploadController(IHostingEnvironment env) 
    { 
     this.hostingEnv = env; 
    } 

[HttpPost] 
public async Task<IActionResult> PostProfilePicture(ICollection<IFormFile> files) // Here i get file count 0 on tool tip 
{ 
    var uploads = Path.Combine(hostingEnv.WebRootPath, "uploads"); 
    foreach (var file in files) 
    { 
     if (file.Length > 0) 
     { 
      using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create)) 
      { 
       await file.CopyToAsync(fileStream); 
      } 
     } 
    } 
    return null; 
} 

Здесь я получаю ошибку загрузки файла я искал через сеть, все, что я получил этот код, но он не работает, может кто-нибудь помогите и укажите, что я делаю неправильно здесь.

+0

Здравствуйте, какая ошибка вы видели при ее реализации? – Adrian

+0

Ошибка при загрузке файла на стороне клиента –

ответ

0

Я. я получил мой ответ

public async Task<IActionResult> Post(ICollection<IFormFile> files) 
{ 
    var v = Request.Form.Files[0]; 
    var uploads = Path.Combine(hostingEnv.WebRootPath, "uploads"); 


      using (var fileStream = new FileStream(Path.Combine(uploads, v.FileName), FileMode.Create)) 
      { 
       await v.CopyToAsync(fileStream); 
      } 
    return null; 
} 

Возьмите файл из запроса и загрузить его, Thanku

0

Вы вызываете имя результата действия в URL-адресе «FileUpload», а имя результата действия стороны сервера - «PostProfilePicture». Вы должны поддерживать одинаковое имя с обеих сторон, или вы можете добавить название маршрута выше HttpPost в стороне сервера код

[Route("api/FileUpload")] 
[HttpPost] 
+0

Это мой веб-контроллер api, он маршрутизируется на этот метод, но нет файла –