ant-design-vue/components/vc-upload/src/attr-accept.js

27 lines
857 B
JavaScript
Raw Normal View History

2019-01-12 03:33:27 +00:00
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
2018-04-11 07:17:34 +00:00
}
export default (file, acceptedFiles) => {
if (file && acceptedFiles) {
const acceptedFilesArray = Array.isArray(acceptedFiles)
? acceptedFiles
2019-01-12 03:33:27 +00:00
: acceptedFiles.split(',');
const fileName = file.name || '';
const mimeType = file.type || '';
const baseMimeType = mimeType.replace(/\/.*$/, '');
2018-04-11 07:17:34 +00:00
return acceptedFilesArray.some(type => {
2019-01-12 03:33:27 +00:00
const validType = type.trim();
2018-04-11 07:17:34 +00:00
if (validType.charAt(0) === '.') {
2019-01-12 03:33:27 +00:00
return endsWith(fileName.toLowerCase(), validType.toLowerCase());
2018-04-11 07:17:34 +00:00
} else if (/\/\*$/.test(validType)) {
// This is something like a image/* mime type
2019-01-12 03:33:27 +00:00
return baseMimeType === validType.replace(/\/.*$/, '');
2018-04-11 07:17:34 +00:00
}
2019-01-12 03:33:27 +00:00
return mimeType === validType;
});
2018-04-11 07:17:34 +00:00
}
2019-01-12 03:33:27 +00:00
return true;
};