Вы можете добавить нормальный input type="file"
на страницу и стилизовать его, чтобы скрыть. Как то так:
<input type="file" id="theFileInput" style="display:none;" />
(Только для этого примера используется встроенный стиль, я, конечно, рекомендую отделить стиль от разметки.)
Затем вы можете инициировать щелчок по нему в ответ на событие щелчка по целевому элементу. С помощью jQuery (при условии, что вы можете установить id
на li
или каким-либо другим способом однозначно идентифицировать его в селекторе), это будет что-то вроде:
$('#clickableLiElement').click(function() {
$('#theFileInput').click();
});
input type="file"
все еще там и может взаимодействовать, как и любой другой элемент формы. Это просто невидимо для пользователя. Но это приведет к открытию диалогового окна «Открыть файл» и установлению его значения для элемента в обычном режиме, который обычно может быть включен в POST для сервера.