Другие способы проверить размер файла перед загрузкой - PullRequest
6 голосов
/ 03 февраля 2010

Есть ли другой способ, которым я могу просто проверить размер файла перед загрузкой?Требование заключается в том, что если размер файла превышает лимит, форма не должна быть отправлена.Если это не так, я должен выполнить обычную загрузку, используя форму, и мне не нужно точно загружать файл на сервер с помощью Flash.

Ответы [ 4 ]

2 голосов
/ 03 февраля 2010

Есть ли другой способ проверить размер файла перед загрузкой?

Не в JavaScript, размер файла , а не в DOM .

1 голос
/ 20 июня 2012

Возможна проверка размера файла с помощью элемента управления SWFUpload.Просто поместите элемент управления SWFUpload за пределы тегов веб-формы.Скажите пользователю нажать на кнопку SWFUpload и указать его файл загрузки.Используйте javascript для определения размера файла, а затем используйте эту информацию по своему усмотрению, такую ​​как заполнение функции проверки.Тогда ваша основная форма должна будет попросить пользователя снова указать свой файл загрузки, и именно это поле будет выполнять фактическую загрузку файла.При отправке формы элемент управления SWFUpload полностью игнорируется, поскольку он не является частью основной формы.

1 голос
/ 04 февраля 2010

с помощью W3C FileAPI (реализован по крайней мере в Firefox 3.6) вы можете.

Подробнее см. По этой ссылке

http://hacks.mozilla.org/2009/12/w3c-fileapi-in-firefox-3-6/

Приветствия

1 голос
/ 03 февраля 2010

при создании экземпляра SWFUpload необходимо передать два параметра: file_size_limit и file_queue_error_handler:

new SWFUpload({
    file_size_limit: "10 MB",
    file_queue_error_handler: queueErrorHandler,
    [...]
})

, а затем:

function queueErrorHandler(file, errorCode) {
    if (errorCode == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT) {
        alert("File exceeds the 10MB limit!");
    }
}

это проверяет, находится ли размер файла в пределахограничения до начала загрузки

...