Как "отменить выбор" выбранного файла?

Я использую это, чтобы позволить пользователю выбирать и выгружать файл:

<input id="fileInput" type="file" ng-file-select="onFileSelect($files)">

Это правильно показывает:

enter image description here

Когда пользователь нажимает кнопку "Загрузить", я загружаю файл.

Когда пользователь нажимает кнопку "Удалить", как я могу удалить имя файла?

Ответ 1

Просто снимите значение элемента ввода файла:

document.getElementById('remove').addEventListener('click', function () {
    document.getElementById('fileInput').value = ''
});

Здесь демонстрация

Ответ 2

Это должно быть больше angular способом, подобным этому, с помощью angular.element(element):

angular.element(document.getElementById('remove')).on('click', function(){
    angular.element(document.getElementById('fileInput')).val('');
});

Демо-версия Plunkr


Из использования документов:

angular.element(element);

где angular.element() создает объект jQuery, а этот (element) в фигурных скобках - это строка HTML или DOMElement, которая будет завернута в jQuery.

Ответ 3

Googling приведет меня сюда, поэтому, чтобы помочь другим, вы также можете сделать это, используя прямой jQuery:

$("#clear").on("click", function() {
  $("#fileInput").val("");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="fileInput" />
<button id="clear">Clear</button>