【问题标题】:Send an excel data to web api service from Angular UI从 Angular UI 向 Web api 服务发送 excel 数据
【发布时间】:2016-09-30 10:33:17
【问题描述】:

在我的 UI 项目中,我有一个文件上传器控件,如下所示:

            <div class="col-lg-2 col-sm-2 col-md-2">
                <div style="font-size:14px; ">
                    <label>Upload File</label>
                    <div class="ui-select">
                        <!--<div file-select="file"></div>-->
                        <input type="file" name="files" ng-files="getTheFiles($files)" />
                    </div>

                </div>

            </div>

ngFiles 指令看起来像:

CaseModule.directive('ngFiles', ['$parse', function ($parse) {

    function fn_link(scope, element, attrs) {
        var onChange = $parse(attrs.ngFiles);
        element.on('change', function (event) {
            onChange(scope, { $files: event.target.files });
        });
    };

    return {
        link: fn_link
    }
}]);

因此,在控制器代码中,我将上传的文件读取为

   //UPLOAD FILE CODE
    var formdata;
    $scope.getTheFiles = function ($files) {
        formdata = new FormData();
        angular.forEach($files, function (value, key) {
            formdata.append(key, value);
        });
    };

    // NOW UPLOAD THE FILES.
    $scope.uploadFiles = function () {
        var request = {
            method: 'POST',
            url: BasePath + 'caseNative/UploadFiles/',
            data: formdata,
            headers: {
                'Content-Type': undefined
            }
        };

现在我不知道如何将这个 excel 数据发送到服务器。有人可以在这方面帮助我吗?我希望能够读取 excel 数据。

提前致谢。

【问题讨论】:

    标签: angularjs excel file-upload asp.net-web-api


    【解决方案1】:

    使用 Asp.Net WebApi MVC,创建一个控制器,例如FileUploadController

    为您正在使用的 API 的 API 路由添加前缀。 HttpContext 库,将通过上述 API 读取任何文件。

    public class FileUploadController : ApiController
    {
      [Route("caseNative/UploadFiles/")]
      [HttpPost]
    
      public HttpResponseMessage UploadFile()
      {
         HttpResponseMessage response = null;
         try
         {
            if (HttpContext.Current.Request.Files.AllKeys.Any()){
                //If any file exist, then it would be available in the key
                //you have appended while creating a formdata.
                var httpPostedUploadFile = HttpContext.Current.Request.Files["Key"];
            }
         }
         catch (Exception e)
         {
            throw ex;
         }
    }
    

    以上代码适用于单个文件上传,如果请求包含多个文件,您可以修改代码以循环文件。

    此外,您可以在此处阅读Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多