Отображение только XML-файлов в элементе ввода HTML-файла - PullRequest
11 голосов
/ 14 августа 2011

Как показать только XML-файлы в элементе ввода файлов?Я читал об атрибуте accept, но также узнал, что ни один браузер его не поддерживает.Я нашел здесь несколько JS-скриптов, но они не очень хорошо работали: - \

(я тоже проверяю эту сторону сервера, но хотел бы сделать это и на стороне клиента)

Спасибо

Ответы [ 2 ]

24 голосов
/ 22 мая 2015

Ответ довольно прост, вы используете тип MIME. Итак, если вы хотите получить XML-файл, просто сделайте:

<input type="file" accept="text/xml" />

Если вы хотите увидеть полный список типов MIME, проверьте этот сайт http://www.iana.org/assignments/media-types/media-types.xhtml

0 голосов
/ 14 августа 2011

Не уверен, что вы можете сделать это, но, по крайней мере, вы можете использовать функцию обратного вызова и проверить входное значение для расширения .xml.

Фрагмент:

<script type="text/javascript">
    function isXml(input)
    {
        var value = input.value;
        var res = value.substr(value.lastIndexOf('.')) == '.xml';
            if (!res) {
                input.value = "";
            }
        return res;
    }
</script>

<form method="post" action="">
    <input type="file" name="myfile" id="myfile" onchange="return isXml(this)" />
    <input type="submit" />
</form>
...