2010-02-03 7 views
6

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

ответ

2

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

Не указано в JavaScript, размер файла not in the DOM.

1

при инстанцировании 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!"); 
    } 
} 

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

+2

Я просто не хочу загружать файл с помощью Flash. Я имею в виду, я просто хочу проверить размер файла с помощью SWFUpload, а затем загрузить файл, используя обычный процесс. Кажется ли это возможным? – jean27

+0

Я также выяснил, что я не могу манипулировать значением типа входного типа, поэтому я предполагаю, что я действительно хочу, невозможно. – jean27

+0

yes, используя SWFUpload, чтобы проверить размер файла, будет работать, если вы можете установить свойство value для ввода нормального файла. –

1

с W3C FileAPI (реализованный хотя бы Firefox 3.6), вы можете.

Смотрите эту ссылку для подробностей

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

Cheers

+1

Спасибо, но наша загрузка должна быть совместима с другими браузерами. Во всяком случае, я проверю это. – jean27

1

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

+0

вы можете привести пример? я тоже хочу только размер файла и ничего больше, у меня есть свой собственный индикатор выполнения и мой собственный способ загрузки файла на мой сервер. В основном я просто хочу получить размер файла, который IE не может дать мне. спасибо? – PathOfNeo

+0

Я думаю, что в вопросе OP подразумевается, что пользователю не нужно дважды просматривать/выбирать файл. –

Смежные вопросы