使用angularjs发布时,文件始终为null

时间:2018-02-18 04:14:17

标签: c# angularjs asp.net-core

通过邮递员上传时它可以正常工作,但使用anularjs

上传时却无法正常工作

.netcore controller

[HttpPost, Route("csv/upload")]
public async Task<IActionResult> StudentCSV(IFormFile file)

HTML:

<div class="btn btn-rounded form-control">
 <input type="file"  class="input_file form-control" placeholder="select file">
</div>

角度控制器:

 var myfile = $('.input_file').prop('files');

  var formData = new FormData();
  formData.append("file", myfile);

  UniversityService.UploadCSV(formData).then(function (res) {
            console.log(res);
  });

角度服务

function UploadCSV(file) {

        CoreService.Post(url+ '/csv/upload/',file).then(function (response) {
            deferer.resolve(response);
        })
    }
  

这里的问题是file总是为空!

1 个答案:

答案 0 :(得分:0)

- 您可以使用指令而不是将Jquery与Angularjs混合,但要解决此问题,请将上传功能更改为以下内容:

 $scope.upload = function () {

    var myfile = $('.input_file').prop('files');

    var formData = new FormData();
    formData.append("file", myfile[0]);// specify only one file 

    $http({
        method: 'POST',
        url: '/api/csv/upload',
        data: formData,
        headers: { 'Content-Type': undefined }// set contenct-type undefined
    }).then(function (result) {

    }, function (error) {

    })

}