【发布时间】:2015-03-06 19:56:11
【问题描述】:
我有一个内置 Angular 的客户端。我正在尝试上传要由 asp.net 服务器端代码处理的文件。虽然我已经设法在文件控件中获取文件,但我不知道如何将二进制数据传递到服务器端。我的客户端代码如下所示
HTML 代码
<div>
<form name="form1" method="POST" enctype="multipart/form-data">
<div>
{{repopulatecftcModel.title}}
</div>
<div style="padding-top:15px;padding-bottom:15px;"><b>Toolkit - Repopulate Cftc Data</b></div>
<div>
<input type="file" id="updCftcFileUploader" name="files[]" multiple />
</div>
<div>
<input type="button" value="Upload Files" title="Upload Files" ng-click="UploadCFTCFiles()" />
</div>
<div>
<label ng-model="repopulatecftc.validationtext"></label>
</div>
<div>
{{repopulatecftcModel.validationtext}}
</div>
</form>
Angular 中的控制器代码
function controller($scope, $http, AppModel, WebFunctionService) {
$scope.UploadFiles = function (evt) {
var files = document.getElementById('updFileUploader').files;
for(var i = 0; i < files.length; i++) {
var file = files[i];
if (file) {
// getAsText(file);
alert("Name: " + file.name + "\n" + "Last Modified Date :" + file.lastModifiedDate);
}
}
var parameters = { directory: $scope.defaultsSaveDirectory, filename: "" };
WebFunctionService.promiseWebMethod('UploadFiles', angular.fromJson(parameters), true)
.success(function () {
$scope.userMessage = "File(s) successfully uploaded";
console.log($scope.userMessage);
})
.error(function (error) {
$scope.userMessage = "ERROR uploading files" + error;
console.log($scope.userMessage);
});
};
};
我想从中访问上传文件的服务器端代码
[Route("UploadFiles")]
[HttpPost]
public void UploadFiles()
{
}
当我运行代码时,我确实会收到每个上传文件的警报。然后代码进入服务器端,如下图所示
我想从这里访问文件。我在网上看到他们显示 Request.Files 显示正在上传的文件集合,但是当我尝试这样做时,编译器开始抱怨。
任何人都知道在这种情况下我应该如何传递从客户端上传的二进制数据并从服务器端访问它
【问题讨论】:
标签: c# asp.net angularjs upload