在AngularJS中进行文件上传通常涉及到以下几个基础概念:
以下是一个使用ngFileUpload
模块进行文件上传的简单示例:
<!DOCTYPE html>
<html ng-app="fileUploadApp">
<head>
<title>File Upload</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ng-file-upload/12.2.13/ng-file-upload.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="FileUploadController">
<input type="file" ngf-select="onFileSelect($file)" />
<button ng-click="uploadFile()">Upload</button>
<div ng-repeat="progress in uploadProgress">{{progress}}%</div>
</body>
</html>
var app = angular.module('fileUploadApp', ['ngFileUpload']);
app.controller('FileUploadController', ['$scope', 'Upload', function($scope, Upload) {
$scope.onFileSelect = function(file) {
$scope.file = file;
};
$scope.uploadFile = function() {
if ($scope.file) {
Upload.upload({
url: 'your-server-endpoint', // 替换为你的服务器端点
data: {file: $scope.file}
}).then(function(resp) {
console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
}, function(resp) {
console.log('Error status: ' + resp.status);
}, function(evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
$scope.uploadProgress.push(progressPercentage);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
});
}
};
}]);
XMLHttpRequest Level 2
,并且在AngularJS中正确处理了进度事件。Access-Control-Allow-Origin
头。client_max_body_size
。通过以上步骤,你可以在AngularJS中实现一个基本的文件上传功能,并根据需要进行扩展和优化。
领取专属 10元无门槛券
手把手带您无忧上云