@Happymalina

Как проверять в поле с типом file формат загруженного файла?

Вопрос достаточно простой для знатоков, пытаюсь сообразить сама,но не получается. Нашла готовый код, подставила классы со стилями для ошибки. Когда загружается неверное расширение - появляется ошибка,когда заходишь еще раз и выбираешь файл с нормальным расширением - ошибка не скрывается. Т.е. как я понимаю не хватает какой-то цикличности для проверки файла на этапе загрузки. Что добавить в код,чтобы сработало?
Сейчас так:
html:
<label class="input-label">Реквизиты:</label>
 <div class="description-frame">
        <div class="description">
               <div class="file file-input-js-active">
                      <input type="file" class="file-input-area" style="height: 100%;" name="details">
                      <div class="text file-input-value">
                             <input type="text" value="" readonly="" id="filename-holder">
                      </div>
                            <a class="btn-browse" href="#">Обзор</a>
              </div>
              <span class="error-text-file">Недопустимый формат файла</span>
        </div>
 </div>



var filesExt = ['txt', 'rtf', 'doc', 'docx', 'xls', 'xlsx', 'pdf', 'png', 'jpg', 'jpeg']; 

    $('input[type=file]').change(function(){

        var parts = $(this).val().split('.');
        if(filesExt.join().search(parts[parts.length - 1]) != -1){
            if ($(this).closest('.error-text-file').is(':visible')) {
                $(this).hide();
            }
            else {
                return true;
            }
        }
        else {
            $('.error-text-file').show();
        }
    });
  • Вопрос задан
  • 860 просмотров
Пригласить эксперта
Ответы на вопрос 1
IonDen
@IonDen
JavaScript developer. IonDen.com
На клиенте достаточно сделать так:
<input type="file" accept=".txt,.rtf,.xls,.xlsx" />

или так, для более широкого покрытия файлов:
<input type="file" accept="image/gif, image/jpeg" />


Остальную проверку оставьте серверу
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект