欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

限制上傳文件大小和格式的jQuery插件實例

 更新時間:2015年01月24日 10:33:15   投稿:shichen2014  
這篇文章主要介紹了限制上傳文件大小和格式的jQuery插件,實例分析了對上傳文件的大小及格式的限制功能,非常具有實用價值,需要的朋友可以參考下

本文實例講述了限制上傳文件大小和格式的jQuery插件。分享給大家供大家參考。具體分析如下:

在客戶端上傳文件,通常需要限制文件的尺寸和格式,最常用的做法是使用某款插件,一些成熟的插件的確界面好看,且功能強(qiáng)大,但美中不足的是:有時候會碰到瀏覽器兼容問題。本篇就來寫一個"原生態(tài)"的jQuery插件,使之能限制上傳文件的大小和格式。

首先,寫一個名稱為checkFileTypeAndSize.js的插件。通過判斷當(dāng)前文件的后綴名是否被包含在預(yù)先設(shè)置所允許的后綴名數(shù)組中,來限制文件格式;通過判斷當(dāng)前文件在IE以及其它瀏覽器下的尺寸是否大于預(yù)先設(shè)置所允許的最大文件尺寸,來限制文件大?。徊⑻峁└袷藉e誤、超過限制大小以及符合條件的回調(diào)函數(shù)。

復(fù)制代碼 代碼如下:
(function ($) {
    $.fn.checkFileTypeAndSize = function (options) {
        //默認(rèn)設(shè)置
        var defaults = {
            allowedExtensions: [],
            maxSize: 1024, //單位是KB,默認(rèn)最大文件尺寸1MB=1024KB
            success: function () { },
            extensionerror: function () { },
            sizeerror: function () { }
        };
        //合并設(shè)置
        options = $.extend(defaults, options);
        //遍歷元素
        return this.each(function () {
            $(this).on('change', function () {
                //獲取文件路徑
                var filePath = $(this).val();
                //小寫字母的文件路徑
                var fileLowerPath = filePath.toLowerCase();
                //獲取文件的后綴名
                var extension = fileLowerPath.substring(fileLowerPath.lastIndexOf('.') + 1);
                //判斷后綴名是否包含在預(yù)先設(shè)置的、所允許的后綴名數(shù)組中
                if ($.inArray(extension, options.allowedExtensions) == -1) {
                    options.extensionerror();
                    $(this).focus();
                } else {
                    try {
                        var size = 0;
                        if ($.browser.msie) {//ie舊版瀏覽器
                            var fileMgr = new ActiveXObject("Scripting.FileSystemObject");
                            var fileObj = fileMgr.getFile(filePath);
                            size = fileObj.size; //byte
                            size = size / 1024;//kb
                            //size = size / 1024;//mb
                        } else {//其它瀏覽器
                            size = $(this)[0].files[0].size;//byte
                            size = size / 1024;//kb
                            //size = size / 1024;//mb
                        }
                        if (size > options.maxSize) {
                            options.sizeerror();
                        } else {
                            options.success();
                        }
                    } catch (e) {
                        alert("錯誤:" + e);
                    }
                }
            });
        });
    };
})(jQuery);

在客戶端的調(diào)用變得非常簡單。

復(fù)制代碼 代碼如下:
<input type="file" name="f" id="f"/>
@section scripts
{
    <script src="~/Scripts/checkFileTypeAndSize.js"></script>
    <script type="text/javascript">
        $(function() {
            $('#f').checkFileTypeAndSize({
                allowedExtensions: ['jpg'],
                maxSize: 10,
                success: function() {
                    alert('ok');
                },
                extensionerror: function() {
                    alert('允許的格式為:jpg');
                    return;
                },
                sizeerror: function() {
                    alert('最大尺寸10kb');
                    return;
                }
            });
        });
    </script>
}

希望本文所述對大家的jQuery程序設(shè)計有所幫助。

相關(guān)文章

  • jQuery實現(xiàn)徑向動畫菜單效果

    jQuery實現(xiàn)徑向動畫菜單效果

    這篇文章主要介紹了jQuery實現(xiàn)徑向動畫菜單效果的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • 基于jquery的on和click的區(qū)別詳解

    基于jquery的on和click的區(qū)別詳解

    下面小編就為大家分享一篇基于jquery的on和click的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • jQuery on方法傳遞參數(shù)示例

    jQuery on方法傳遞參數(shù)示例

    這篇文章主要介紹了jQuery on方法傳遞參數(shù)示例,本文給出了一個傳遞3個參數(shù)的例子,需要的朋友可以參考下
    2014-12-12
  • js/jquery判斷瀏覽器的方法小結(jié)

    js/jquery判斷瀏覽器的方法小結(jié)

    在網(wǎng)站前端開發(fā)中,瀏覽器兼容性是前端開發(fā)框架要解決的第一個問題,要解決兼容性問題就得首先準(zhǔn)確判斷出瀏覽器的類型及其版本,而判斷瀏覽器的版本一般只能通過分析瀏覽器的userAgent才能知道.今天我們把各種判斷方法都總結(jié)一下,希望對大家有所幫助
    2014-09-09
  • jQuery插件簡單學(xué)習(xí)實例教程

    jQuery插件簡單學(xué)習(xí)實例教程

    這篇文章主要介紹了jQuery插件的簡單用法,列舉了分頁插件、放大鏡插件、自動完成插件、上傳插件、日歷插件等的簡單使用方法,需要的朋友可以參考下
    2016-07-07
  • jQuery彈出窗口簡單實現(xiàn)代碼

    jQuery彈出窗口簡單實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了jQuery彈出窗口的簡單實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • jQuery layui常用方法介紹

    jQuery layui常用方法介紹

    layer是一款近年來備受青睞的web彈層組件,她具備全方位的解決方案,致力于服務(wù)各水平段的開發(fā)人員,您的頁面會輕松地?fù)碛胸S富友好的操作體驗,接下來通過本文給大家介紹layui常用方法,需要的朋友參考下
    2016-07-07
  • jQuery 數(shù)據(jù)緩存模塊進(jìn)化史詳細(xì)介紹

    jQuery 數(shù)據(jù)緩存模塊進(jìn)化史詳細(xì)介紹

    數(shù)據(jù)緩存系統(tǒng)最早應(yīng)該是jQuery1.2引入的,那時它的事件系統(tǒng)完成照搬DE大神的addEvent.js,而addEvent在實現(xiàn)有個缺憾,它把事件的回調(diào)都放到EventTarget之上,這會引發(fā)循環(huán)引用
    2012-11-11
  • 快速解決jQuery與其他庫沖突的方法介紹

    快速解決jQuery與其他庫沖突的方法介紹

    本篇文章主要是對快速解決jQuery與其他庫沖突的方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 基于jquery完美拖拽,可返回拖動軌跡

    基于jquery完美拖拽,可返回拖動軌跡

    基于jquery完美拖拽,可返回拖動軌跡 用JQ實現(xiàn),話不多說,直接上碼
    2012-03-03

最新評論