根據ng-file-uoload實現文件上傳和下載實現
網上down下來ng-file-uoload.js,在項目中記得引入服務哦。
示例代碼:
FileUploaderCtrl.$inject = ["$scope","$FileUploader"];
function FileUploaderCtrl($scope,$FileUploader) {
var uploader = $scope.uploader = new $FileUploader({
url: '/file/upload.do'
});
// FILTERS
uploader.filters.push({
name: 'customFilter',
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
}
});
// CALLBACKS
uploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/, filter, options) {
console.info('onWhenAddingFileFailed', item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info('onAfterAddingFile', fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info('onAfterAddingAll', addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
console.info('onBeforeUploadItem', item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info('onProgressItem', fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info('onProgressAll', progress);
};
uploader.onSuccessItem = function (fileItem, response, status, headers) { //上傳成功
console.info('onSuccessItem', fileItem, response, status, headers);
};
uploader.onErrorItem = function (fileItem, response, status, headers) {
console.info('onErrorItem', fileItem, response, status, headers);
};
uploader.onCancelItem = function (fileItem, response, status, headers) {
console.info('onCancelItem', fileItem, response, status, headers);
};
uploader.onCompleteItem = function (fileItem, response, status, headers) { //上傳成功
console.info('onCompleteItem', fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info('onCompleteAll');
};
console.info('uploader', uploader);
};
/*
* uploader.onSuccessItem
* uploader.onCompleteItem
* 根據這兩個函數即可獲取到相應的返回狀態
*
*/
Html中也要有相應的更改:
<input type="file" name="****" value="****" nv-file-select="" uploader="uploader"/>
ps:有需要js文件的可以聯系我
實際開發代碼 :
var uploader2 = $scope.uploader2 = new FileUploader({
url:$scope.$serverPath+'BatchFileUpload.do'
});
uploader2.onAfterAddingFile = function(fileItem) {
$scope.fileName = fileItem.file.name;
if($scope.uploader2.queue&&$scope.uploader2.queue.length>1){
for(var i=0;i<$scope.uploader2.queue.length-1;i++){
$scope.uploader2.queue[i].remove();
}
}
};
//文件上傳
$scope.submitPre1 = function () {
if (!parseFloat($scope.totalAmount)>0) {
$scope.alert("轉賬金額不能為0!");
return false;
}
$scope.uploader2.onBeforeUploadItem= function(item){
item.alias='UploadFile';
item.formData = [{"FileName":FileName}
]
}
};
uploader2.onSuccessItem = function(fileItem, response, status, headers) {
if(response.jsonError) {
$scope.confirm(response.jsonError[0]["_exceptionMessage"],function(){$state.reload()},function(){$state.reload()});
} else {
$scope.queryList();
}
};
var length = $scope.uploader2.queue.length;
var a = $scope.uploader2.queue[length-1];
if(a){
a.upload();
}else{
$scope.alert("請選擇文件")
}
};