На самом деле у вас нет доступа к файловой системе (например, для чтения и записи локальных файлов), однако, из-за спецификации HTML5 File Api, есть некоторые свойства файлов, к которым у вас есть доступ, и размер файла является одним из них.
Для HTML ниже
<input type="file" id="myFile" />
попробуйте следующее:
//binds to onchange event of your input field
$('#myFile').bind('change', function() {
//this.files[0].size gets the size of your file.
alert(this.files[0].size);
});
Поскольку он является частью спецификации HTML5, он будет работать только для современных браузеров (v10 требуется для IE), и я добавил сюда дополнительные сведения и ссылки на другую информацию о файлах, которую вы должны знать: http://felipe.sabino.me/javascript / 2012/01/30 / Javascipt проверка-The-размер файла /
Поддержка старых браузеров
Имейте null
в виду, что старые браузеры будут возвращать значение для предыдущего this.files
вызова, поэтому при доступе this.files[0]
возникнет исключение, и вы должны проверить поддержку File API перед его использованием.
jQuery
файл javascript не был добавлен (или был загружен неправильно). У вас есть это наhead
вашей странице?Если вы хотите использовать jQuery,
validate
вы можете создать этот метод:Вы бы использовали это:
источник
accept
правило, где вы должны были использоватьextension
правило. ~ Правило только для типов MIME. Правило для расширений файлов. Кроме того, необходимо включить в файл для этих правил.accept
extension
additional-methods.js
$('#formid').validate({ rules: { inputimage: { required: true, extension: "png|jpe?g|gif", filesize: 1048576 }}, messages: { inputimage: "File must be JPG, GIF or PNG, less than 1MB" } });
Этот код:
Возвращает размер файла для ввода формы.
На FF 3.6 и позже этот код должен быть:
источник
Я также публикую свое решение, используемое для
FileUpload
управления ASP.NET . Возможно, кто-то найдет это полезным.источник
f = this.files[0]
иначе это не удастся в старых браузерах. напр.if (f && (f.size > 8388608 || f.fileSize > 8388608))
Используйте ниже, чтобы проверить размер файла и очистить, если он больше,
источник
Вы можете сделать этот тип проверки с помощью Flash или Silverlight, но не Javascript. Песочница javascript не разрешает доступ к файловой системе. Проверка размера должна выполняться на стороне сервера после его загрузки.
Если вы хотите пойти по маршруту Silverlight / Flash, вы можете проверить, установлен ли он по умолчанию, на обычный обработчик загрузки файлов, который использует обычные элементы управления. Таким образом, если у вас есть Silverlight / Flash, их опыт будет немного более насыщенным.
источник
Я считаю, что это проще всего, если вы не планируете отправлять форму с помощью стандартных методов ajax / html5, но, конечно, это работает с чем угодно.
НОТЫ:
Раньше это работало, но больше не работает в Chrome, я просто протестировал приведенный выше код, и он работал как в ff, так и в chrome (последний). Второй ["0"] теперь firstChild.
источник
Пожалуйста, попробуйте это:
источник