2017-10-03 3 views
0

テキストを含むファイル(おそらく.csv.txt.xlsなど)をアップロードしたかったので、ドキュメントをC#で処理します。フロントエンドにAngular JS、WebAPIにC#を使用します。Angles JSを使用してファイルをアップロードしてC#Web APIに送信するにはどうすればよいですか?

ファイルをC#にアップロードする方法が必要ですか?

私が試した:C#のWebAPIのコントローラで

を:

[HttpPost] 
    [Route("api/GetCalimCsv")] 
    public string GetCalimCsv(dynamic content) 
    { 
     return content; 
    } 

これは、NULL値を取得しています。角度制御装置において

CSHTMLファイルで
$scope.fileNameChanged = function (ele) { 
    var formData = new FormData(); 
    formData.append('claim', ele.files[0]); 
    $http({ 
     method: 'POST', 
     url: '/api/GetCalimCsv/', 
     data: formData 
     }).then(function successCallback(response) { 
     alertify.success(response.data); 
    }, function errorCallback(response) { 
     alertify.error(response.status); 
    }); 

<input ng-model="Claim" ng-required="true" 
    type="file" accept=".js, .css, .txt, .doc, .docx, .csv, .xls | text/*" 
    onchange="angular.element(this).scope().fileNameChanged(this)" /> 

サンプルスクリーンショットファイル入力時: JavaScript is getting the file name

+0

あなたはこれまでにしようとしているでしょうか? – jitender

+0

アップロード方法がわかりません。私はそれが初めてです。 –

+0

https://github.com/stewartm83/angular-fileupload-sample – jitender

答えて

0

.directive('fileModel', ['$parse', function($parse) { 
     function fn_link(scope, element, attrs) { 
      var onChange = $parse(attrs.fileModel); 
      element.on('change', function (event) { 
       onChange(scope, { $files: event.target.files }); 
      }); 
     }; 
     return { 
      link: fn_link 
     } 
    }]) 
以下のように指令を使用してみてください

もしあれば、あなたがバックエンド のようにそれをしたい名前に「IMG」を元に戻し、その後

<input type="file" id="fileId" file-model="myFiles($files)"/> 

に入力タイプ=ファイルを置き換えた後、お使いのコントローラにこの

var formData = new FormData(); 
     $scope.myFiles = function($files) { 
      formData.append('img', $files[0]); 
} 

を追加何かを追加したい場合は、formDataのキーを使って各値を追加して

formData.append('title', form.title); 

とあなたの$ HTTPメソッド

$http.post('YOUR SERVER API URL', formData) 
+0

なぜファイルモデルを使用しましたか?私はそれを実行しようとしたが、WebAPIはデータを取得できませんでした。 –

関連する問題