11
A
回答
4
看到這個例子中,你得到一些想法
HTML代碼:
<form class="upload-form">
<input class="upload-file" data-max-size="2048" type="file" >
<input type=submit>
</form>
SCRIPT:
$(function(){
var fileInput = $('.upload-file');
var maxSize = fileInput.data('max-size');
$('.upload-form').submit(function(e){
if(fileInput.get(0).files.length){
var fileSize = fileInput.get(0).files[0].size; // in bytes
if(fileSize>maxSize){
alert('file size is more than ' + maxSize + ' bytes');
return false;
}else{
alert('file size is correct - '+fileSize+' bytes');
}
}else{
alert('Please select the file to upload');
return false;
}
});
});
它已經在jsfiddle
7
雖然這個問題是有點老了,我仍然認爲值得爲那些尋求的人提供最好的答案它。上面的答案依賴於jQuery的膚淺方面,但讓我們使用適合Angular開發的樣式。
在這裏,我引用actual library author's own recommendation當問同樣的問題,改變它在上面的問題問大小:
uploader = new FileUploader();
//...
uploader.filters.push({
'name': 'enforceMaxFileSize',
'fn': function (item) {
return item.size <= 10485760; // 10 MiB to bytes
}
});
上面的例子更新:以反映更改angular-file-upload
API。
請注意,這依賴於文件的size
屬性(Blob size in bytes),僅受現代瀏覽器(即IE10及更高版本)的支持。
5
您可以使用此lib目錄下:
https://github.com/danialfarid/ng-file-upload
ngf-min-size='10' // minimum acceptable file size in bytes
ngf-max-size='1000' // maximum acceptable file size in bytes
0
這是我使用這兩個指令的文件拉到到Angulars範圍,驗證文件的大小和驗證擴展。
var fileUpload =() => {
return {
scope: {
file: '='
},
require: 'ngModel',
link(scope, el, attrs, ctrl) {
el.bind('change', (event) => {
var file = event.target.files[0];
var extn = file.name.split(".").pop().toLowerCase();
if (attrs.validExtensions != null) {
const extensions = attrs.validExtensions.split(',');
var validExtension = false;
extensions.forEach((x) => {
if (x === extn) {
validExtension = true;
}
});
ctrl.$setValidity('type', validExtension);
}
if (attrs.maxSize != null) {
var maxSize = attrs.maxSize;
var valid = (file.size/1024) <= maxSize;
ctrl.$setValidity('size', valid);
} else {
console.log('max size ScriptNotifyEvent set');
}
scope.file = file ? file : undefined;
scope.$apply();
});
}
};
};
HTML
<input type="file" file="File1" id="File1" name="File1" ng-model="File1" valid-extensions="doc,docx,xls,xlsx,pdf,tiff,zip,ppt,pptx" max-size="20000" />
<div class="alert alert-danger" ng-show="form.File1.$error.type && (form.File1.$touched || Submitted)" Role="alert">This form only allows the following file types: *.doc, *.docx, *.xls, *.xlsx, *.ppt, *.pptx, *.pdf, *.tiff, *.zip</div>
<div class="alert alert-danger" ng-show="form.File1.$error.size && (form.File1.$touched || Submitted)" Role="alert">The file is too large to send to us, please limit indivudual files to 20 megabytes.</div>
0
使用指令
ngApp.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() {
var fileSize = this.files[0].size/1024;
if (fileSize > 600) {
alert("File size is larze; maximum file size 600 KB");
} else {
scope.$apply(function() {
modelSetter(scope, element[0].files[0]);
});
}
});
}
};
}]);
相關問題
- 1. 如何限制上傳文件大小?
- 2. MFMailComposeViewController附件文件大小限制
- 3. Docusign附件文件大小限制
- 4. DWR文件上傳大小限制
- 5. PHP文件上傳大小限制
- 6. 春季上傳文件大小限制
- 7. Gerrit限制文件上傳大小
- 8. 限制上傳文件大小在PHP
- 9. AsyncFileUpload限制文件大小上傳
- 10. 如何限制asp.net中的上傳文件大小?
- 11. 如何限制PHP中的文件上傳大小?
- 12. 如何在java servlet中限制上傳的文件大小
- 13. 如何根據文件類型限制文件上傳大小限制.htaccess
- 14. 如何在Wicket中限制上傳文件大小
- 15. 如何在struts 2中指定上傳文件大小限制?
- 16. 如何限制上傳文件的大小apache + django
- 17. 如何限制用分割器上傳時的文件大小?
- 18. 如何限制多部分文件上傳中的文件大小?
- 19. 在asp中上傳文件大小時可以限制文件大小嗎?
- 20. flex文件上傳器的文件大小限制
- 21. 多個文件上傳的文件大小限制
- 22. iCloud郵件附件限制大小
- 23. Internet Explorer中最大文件大小上傳限制是多少?
- 24. 如何限制用戶上傳jQuery的telerik上傳零大小的文件?
- 25. 角JS文件上傳 - 限制文件類型,大小
- 26. 評估文件上傳器限制文件總大小?
- 27. 限制上傳文件大小上傳前用php://輸入
- 28. 關於附件的大小限制?
- 29. PHP的郵件和文件附件大小限制
- 30. apache和gunicorn的最大(限制)上傳文件大小
嗯......轉念一想,這到底是'在上面的例子中uploader'或者至少你在哪裏應該'.push'過濾器?! – Campbeln
@Campbeln抱歉,模糊不清。 'uploader'是'FileUploader'的一個實例''上傳器=新的FileUploader();'。將更新示例。 – runderworld
@Campbeln也更新了我的代碼示例以反映對角度文件上傳FileUploader#filters API的更改。 – runderworld