【发布时间】:2013-12-19 18:02:45
【问题描述】:
使用 uploadify 我可以设置允许的文件类型,例如
'fileType' : '*.jpg;*.gif;*.png;*.jpeg;',
它会显示在对话框中All files(*.jpg;*.gif;*.png;*.jpeg;)
uploadifive 中是否有让它完全像这样工作,我使用了我在论坛中找到的各种选项,我得到的最接近的是来自这个 thread 代码如下:
'fileType' : ["image\/gif","image\/jpeg","image\/png","image\/jpg", "application\/pdf"],',
var accept_types = '';
if(typeof settings.fileType !== 'object'){
settings.fileType = [settings.fileType];
}
for (var i=0;i<settings.fileType.length;i++){
var filetype_match = /^([a-z0-9]+)$/g.exec(settings.fileType[i]);
if(filetype_match != null){
accept_types += filetype_match[1]+'/*,';
}else{
accept_types += settings.fileType[i]+',';
}
}
accept_types = accept_types.slice(0,accept_types.length-1);
if(accept_types.length > 0){
input.attr('accept', accept_types);
}
// Check the filetype
if (settings.fileType) {
if ($.isArray(settings.fileType)) {
var isValidFileType = 0;
for (var n = 0; n < settings.fileType.length; n++) {
if (file.type.indexOf(settings.fileType[n]) > -1) {
alert(isValidFileType + 'valid file');
isValidFileType = 1;
}
}
if (!isValidFileType) {
alert(isValidFileType + 'not validid');
alert(settings.fileType);
$data.error('FORBIDDEN_FILE_TYPE', file);
}
} else {
if (file.type.indexOf(settings.fileType) < 0) {
$data.error('FORBIDDEN_FILE_TYPE', file);
}
}
}
这很好用,但是默认情况下它仍然显示“所有文件(.)”作为默认值,并可以从下拉列表中选择允许的文件。
理想情况下,我希望它看起来像“所有支持的文件类型(.pdf、.jpeg)”等作为默认显示
我不喜欢被禁止的文件类型使用的功能,因为我希望我的用户看到他们可以上传哪些文件,而不是仅仅为了它说被禁止的文件等而赌一把
谢谢
李
【问题讨论】: