【发布时间】:2017-02-02 12:17:45
【问题描述】:
我的代码看起来像
var myApp = angular.module('myApp', []);
myApp.directive('fileModel', ['$parse',
function($parse) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function() {
scope.$apply(function() {
modelSetter(scope, element[0].files[0]);
});
});
}
};
}
]);
myApp.service('fileUpload', ['$http',
function($http) {
this.uploadFileToUrl = function(file, uploadUrl) {
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest: angular.identity,
headers: {
'Content-Type': 'application/json'
}
})
.success(function() {})
.error(function() {});
}
}
]);
myApp.controller('myCtrl', ['$scope', 'fileUpload',
function($scope, fileUpload) {
$scope.uploadFile = function() {
var file = $scope.myFile;
console.log('file is ');
console.dir(file);
var uploadUrl = "http://localhost:22729/Data/";
fileUpload.uploadFileToUrl(file, uploadUrl);
};
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myCtrl">
<input type="file" file-model="myFile" />
<button ng-click="uploadFile()">upload me</button>
</div>
</body>
web.config 如下所示
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
我尝试了很多替代方案,但仍然面临这个问题。
我也想知道如何上传其他文件类型。
【问题讨论】:
标签: angularjs json http post file-upload