Удалить выбранные файлы перед загрузкой с помощью Javascript - PullRequest
6 голосов
/ 18 февраля 2012

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

Можно ли удалить значениеиз файлового объекта того, который они удалили (например, не хотели загружать)?

Ответы [ 3 ]

5 голосов
/ 18 февраля 2012

FileList не имеет API для удаления записей:

https://developer.mozilla.org/en/DOM/FileList

Однако вы можете восстановить Загрузчик файлов, используя XHR2 и AJAX, и фильтровать содержимое там.Это подразумевает загрузку XHR2 и AJAX и не подходит для традиционных <form> загрузок.

https://developer.mozilla.org/en/Using_files_from_web_applications

1 голос

Библиотеки - ваш лучший выбор, прежде чем мы получим какой-нибудь стандартный API ...

Они также доступны в https://cdnjs.com/

1 голос
/ 18 февраля 2012

Если вы используете стандартную форму с набором стандартных файловых входов, то вы можете сделать это следующим образом http://jsfiddle.net/thXre/

$(document).ready(function(){
    $('.remove').click(function(){
        $(this).closest('div').slideUp('slow', function(){$(this).remove();});
    });        
});​

и HTML-код:

<div>
 <input type='file' name='files[]'> <img src='x.gif' class='remove'>
</div>
<div>
 <input type='file' name='files[]'> <img src='x.gif' class='remove'>
</div>
<div>
 <input type='file' name='files[]'> <img src='x.gif' class='remove'>
</div>
...