簡體   English   中英

從Angular UI將Excel數據發送到Web API服務

[英]Send an excel data to web api service from Angular UI

在我的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數據。

提前致謝。

使用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;
     }
}

上面的代碼適用於單個文件上傳,如果請求包含多個文件,則可以修改代碼以使文件循環。

此外,您可以在此處閱讀文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM