Я хочу ограничить загрузку файлов в моем мобильном веб-приложении типами изображений и файлов PDF. Однако когда я открываю средство выбора файлов в Chrome на Android, я могу выбрать файлы Excel, которые не должны быть доступны для выбора на основе того, что я указал в атрибуте accept элемента ввода . Проблема, кажется, специфична для Android - файлы Excel серого цвета в iOS и скрыты на рабочем столе.
Кроме того, если я перейду к Google Диску с помощью средства выбора файлов и выберу файл Excel, возвращенный тип mime-файла будет application/pdf
. Здесь я бы ожидал application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
или application/vnd.google-apps.spreadsheet
как тип пантомимы. Это происходит только для файлов Excel с Google Диска, т. Е. Выбор файла Excel из Загрузок возвращает ожидаемый тип MIME.
Поэтому у меня два вопроса:
1. Ожидается, что поведение Android не будет соответствовать типам файлов, указанным в атрибуте accept?
2. Почему файлы Excel, выбранные на Google Диске, возвращаются в формате PDF MIME?
Элемент ввода, который принимает изображения и файлы PDF:
<input onchange="showImage('Files')" type="file" name="Files" accept="image/*,.pdf" value="Upload a file"">
Функция, которая срабатывает после выбора файла excel :
function showImage(type){
var file = document.querySelector(`input[name=${type}]`).files[0];
console.log(file);
}
И журнал выбранного файла:
File(47847) {name: "Gratefulness.pdf", lastModified: 1536163728724, lastModifiedDate: Wed Sep 05 2018 11:08:49 GMT-0500 (hora de verano central), webkitRelativePath: "", size: 47847, …}
lastModified: 1536163745655
lastModifiedDate: Wed Sep 05 2018 11:09:06 GMT-0500 (hora de verano central) {}
name: "Gratefulness.pdf"
size: 47847
type: "application/pdf"
webkitRelativePath: ""
__proto__: File