Javascript Angular js fileupload仅允许图像扩展
这是我上传图像配置文件的指令。它工作得很好,但我想知道的是,我们如何过滤这个指令以只允许特定的扩展,因为我只允许图像。顺便说一下,我正在使用fineupload。请随意询问图像url下面的代码是e.target.resultJavascript Angular js fileupload仅允许图像扩展,javascript,angularjs,upload,fine-uploader,Javascript,Angularjs,Upload,Fine Uploader,这是我上传图像配置文件的指令。它工作得很好,但我想知道的是,我们如何过滤这个指令以只允许特定的扩展,因为我只允许图像。顺便说一下,我正在使用fineupload。请随意询问图像url下面的代码是e.target.result app.directive('uploadProfile', function () { return function (scope, element, attrs, $window) { var $uploadCrop;
app.directive('uploadProfile', function () {
return function (scope, element, attrs, $window) {
var $uploadCrop;
function readFile(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('.cropper').addClass('ready')
$window.alert("hi")
$uploadCrop.croppie('bind', {
url: e.target.result
}).then(function () {
console.log("do nothing")
});
}
reader.readAsDataURL(input.files[0]);
}
else {
swal("Sorry - you're browser doesn't support the FileReader API");
}
}
$(element).on("change", function () {
readFile(this)
});
$uploadCrop = $('.cropper').croppie({
url: "/static/img/yahshua.jpg",
viewport: {
width: 170,
height: 170,
type: 'circle',
},
enableExif: true,
enableZoom: true,
enforceBoundary: false
});
$(element).on('change', function () { readFile(this); });
$('#cropImage').on('click', function (ev) {
$uploadCrop.croppie('result', {
type: 'base64',
size: 'viewport'
}).then(function (resp) {
scope.record = {}
scope.record.cropped = resp
scope.main.upload_profile(resp)
});
});
};
})
I您的html输入类型为“file”,您可以添加“accept”属性以将文件类型限制为仅图像:
I您的html输入类型为“file”,您可以添加“accept”属性以将文件类型限制为仅图像:
查看了您的所有代码并发表了评论解决方案是使用只需将文件输入属性设置为
accept=“image/*”
查看您的所有代码并发表评论
解决方案是使用只需将文件输入属性设置为
accept=“image/*”
app.directive('uploadProfile', function () {
return function (scope, element, attrs, $window) {
var $uploadCrop;
function readFile(input) {
// if (input.files && input.files[0]) {
// files are always avalible nowdays
if (input.files[0]) {
// You don't need the FileReader... (we will use object urls)
// var reader = new FileReader();
// reader.onload = function (e) {
$('.cropper').addClass('ready')
$window.alert('hi')
$uploadCrop.croppie('bind', {
url: URL.createObjectURL(input.files[0])
}).then(function () {
console.log("do nothing")
});
// }
// reader.readAsDataURL(input.files[0]);
}
// All browswers support FileReader nowdays...
// else {
// swal("Sorry - you're browser doesn't support the FileReader API");
// }
}
// set file attribute's accept to "image/*"
// This will only allow users to only select images
element.accept = 'image/*'
$(element).on("change", function () {
readFile(this)
});
$uploadCrop = $('.cropper').croppie({
url: "/static/img/yahshua.jpg",
viewport: {
width: 170,
height: 170,
type: 'circle',
},
enableExif: true,
enableZoom: true,
enforceBoundary: false
});
// You are already doing this above
// $(element).on('change', function () { readFile(this); });
$('#cropImage').on('click', function (ev) {
$uploadCrop.croppie('result', {
type: 'base64', // I would encurage you to use blob & FormData instead
size: 'viewport'
}).then(function (resp) {
scope.record = {}
scope.record.cropped = resp
scope.main.upload_profile(resp)
});
});
};
})