Здравствуйте.
В форме мне необходимо загружать CSV-файл на сайт.
Как запретить пользователям грузить в эту форму файлы другого формата?
accept="text/csv"
Или для этого формата правильным является какой-то другой MME-тип? Или это можно как-то сделать при помощи javascript?
Спасибо.
UPD Есть вот такой код
var filesExt = ['csv'];
$('input[type=file]').change(function(){
var parts = $(this).val().split('.');
if(filesExt.join().search(parts[parts.length - 1]) == -1){
alert('Не совпадает формат файла');
}
});
Подскажите, пожалуйста, как после алерта добавить ещё и очистку данного поля file?
Чтобы явно ограничить допустимые типы файлов, нужно добавить фильтр на отображаемые файлы в html-элемент: accept=".csv"
Этот фильтр можно обойти, если выбрать в фильтре формы "Все файлы". Чтобы предотвратить это, дополним ваш код:
var re = /(?:\.([^.]+))?$/;
var fileExt = 'csv';
$('input[type=file]').change(function(){
if (fileExt.indexOf(re.exec($('.file-for-import')[0].files[0].name)[1]) < 0){
alert('Не совпадает формат файла');
$('.file-for-import')[0].value = null;
}
});
Ссылка на работающий пример: https://jsfiddle.net/cbamdqt1/5/
Работает, проверяет если фаил csv, делает рисет файлу. HTML:
<form>
<input type="text">
<input type="file">
</form>
<button id="bt">RESET FILE</button>
Javascript
var res = document.querySelector('input[type=file]');
res.addEventListener("change", function(){
var type = this.files[0].name.split(".").pop();
if(type != "csv")
{
alert("wrong file format");
}
})
document.getElementById('bt').addEventListener("click", function(){
var frm = document.querySelector('input[type=file]');
frm.value = "";
})
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Если формат даты в поле d-m-Y (%d-%m-%Y) то при попытке изменить дату выбор даты начинается с 1970 года Скажите пожалуйста как решить данную проблему...
Нужно прервать цепочку если в строке будет такой пункт /опоздание больше 15 мин == согласовано/ то нужно делать разрыв в цепочке и в итоге по подсчетам...