Ответ 1
В Quirksmode.org есть интересная статья об этом: http://www.quirksmode.org/dom/inputfile.html
Есть ли способ сделать <input type="file">
выглядеть одинаково во всех браузерах с помощью CSS?
В Quirksmode.org есть интересная статья об этом: http://www.quirksmode.org/dom/inputfile.html
попробуйте это -
Подробнее - http://www.quirksmode.org/dom/inputfile.html
Вы можете попробовать использовать swfupload, проект с открытым исходным кодом, в который встроен крошечный Flash файл на странице, а не входной файл... Вы можете использовать CSS для стилизации кнопки, которая запускает загрузку Flash, но вы хотите.
Даунсайд: с ним может быть сложно работать, и, конечно же, у ваших пользователей должна быть вспышка.
Потенциал: несколько файлов можно выбрать сразу в диалоговом окне загрузки!
вы можете просто создать собственную кнопку ввода файла.
просто установите атрибут CSS вашего элемента ввода style="display:none"
и обработайте событие click в javascript. дальнейшее чтение:
Использование скрытых элементов ввода файла с помощью метода click()
EDIT: выясняется, что это больше не работает по соображениям безопасности. немного взломать - просто установить стиль css на visibility:hidden
.
Вот JSFiddle, где я помещаю свое поле <input>
где-то в конце моей страницы и запускаю openFileDialog с помощью элемента <a>
.
//html
<input id="openFileDialog" type="file" id="files" name="files[]" accept=".json, .txt" />
//js
$("#openFile").on("click", function () {
//throws an error if browser doesn't support file upload
checkFileApiCompatibility();
//opens File Dialog
$("#openFileDialog").click();
$("#openFileDialog").on('change', function(){
openFile(this);
});
});