#html #angular #typescript #google-chrome
Вопрос:
Существует разница в объекте файла, полученном из одного и того же элемента ввода HTML, между Chrome и Firefox. Я использую Angular на переднем конце.
Мой элемент ввода HTML
<input type="file" accept=".csv" (change)=onSelectFile($event) />
Мой Код Машинописи
onSelectFile(event: any) {
event.preventDefault();
const file = event.target.files[0];
console.log(file)
}
Вывод вышеуказанного кода машинописи в Mozilla Firefox 89.0.1 (64-разрядная версия)
File { name: "Facility (5).csv", lastModified: 1624430723623, webkitRelativePath: "", size: 125, type: "text/csv" }
Вывод того же кода машинописного текста в Google Chrome 91.0.4472 1.14 (Официальная сборка) (64-разрядная версия)
File { name: "Facility (5).csv", lastModified: 1624430723623, webkitRelativePath: "", size: 125, , type: "", lastModifiedDate: Wed Jun 23 2021, 12:15:23 GMT 0530 (India Standard Time) }
Как видно из приведенных выше журналов консоли, объект File возвращает разные параметры в разных браузерах. Тип файла доступен в firefox как text/csv
, но не в chrome.
У меня есть последующая логика, которая зависит от типа файла, введенного/импортированного здесь. Итак, мне нужно type
, чтобы тип файла был в каждом браузере. Пожалуйста, помогите.
(Примечание: Я также хочу, чтобы эта работа работала в Safari, но еще не тестировал ее.)
Комментарии:
1. Я не могу повторить это в той же версии браузера Chrome. Выбор csv-файла дает
application/vnd.ms-excel
мне нужный тип. (И да, на самом деле это csv, а не xls(x).) jsfiddle.net/7vpLbhfq2. @Ivar как вы думаете, может быть проблема с тем, как я сохраняю файл в Excel? Я выбрал обычный CSV (разделенный запятыми). Я знаю, что есть и другие варианты CSV. Должен ли я выбрать какой-либо из них? В каком из них вы его сохранили?
3. Я не уверен, что содержимое файла вообще имеет какое-либо влияние. Вы можете попробовать создать простой новый текстовый файл с содержимым
1,2,3,4,5
, сохранить его, а затем изменить расширение на.csv
. Посмотрим, есть ли в этом какая-то разница.4. Я только что понял, что забыл упомянуть, что именно так файл создается в первый раз. Затем я изменяю файл с помощью Excel, сохраняю и пытаюсь загрузить то же самое. Вот пример файла my-stackoverflow.s3.eu-central-1.amazonaws.com/Facility (5).csv . Итак, как вы думаете, я не должен создавать CSV таким образом?
5. И правильно ли указан тип исходного файла? Образец файла, который вы предоставили, дает мне тот же результат (
application/vnd.ms-excel
).