Кросс-браузерная проверка размера файла на стороне клиента перед его загрузкой на сервер? - PullRequest
5 голосов
/ 09 августа 2009

Проверка на стороне клиента важна для повышения удобства использования.

Существует ли какой-либо кросс-браузерный способ проверки размера файла перед его загрузкой на сервер. Я использую контроль загрузки файлов asp.net.

Я обнаружил, что некоторые сторонние элементы управления выполняют эту проверку:

http://ajaxuploader.com/Demo/simple-upload.aspx

и

http://demo.essentialobjects.com/Default.aspx?path=AJAXU

а как?

Ответы [ 2 ]

4 голосов
/ 01 октября 2012

Теперь это возможно с файловым API HTML5:

<script>
    var myFile = document.getElementById('myFile');
    var size;
    myFile.addEventListener('change', function() {
        size = this.files[0].size;
    });
</script>

Это поддерживается большинством последних браузеров .

Internet Explorer поддерживает этот обходной путь , включающий ActiveX, но требует понижения настроек безопасности Internet Explorer, так что на самом деле это не вариант для большинства приложений.

Требуется больше работы, но используйте загрузчик на основе Flash, такой как SWFUpload , если вам действительно нужно сделать это в IE9 или ниже. В IE10 (надеюсь) добавится поддержка файлового API HTML5.

4 голосов
/ 09 августа 2009

Раньше единственный способ определить размер файла перед его отправкой на сервер состоял в том, чтобы иметь «толще, чем javascript» клиентские плагины / дополнения. Они должны быть установлены в клиентской системе. Например. используя SWFUpload, апплеты Java, элементы управления ActiveX.

Теперь вы можете использовать HTML5 File API, т.е.

var size = document.getElementById('myfile').files[0].size;
...