搜尋
首頁web前端html教學html5 如何实现客户端验证上传文件的大小

在HTML 5中,现在可以在客户端进行文件上传时的校验了,比如用户选择文件后,可以马上校验文件的大小和属性等,这其实时得益于浏览器端新增的对文件的校验能力,其中支持HTML 5的浏览器,都会实现W3C实现的文件API标准,其中可以读取客户端文件的各种信息和参数。 

下面的例子如下,首先是HTML 

<code class="language-html"><input type="file" data-file_type="zip|png" data-max_size="1000000"> </code>

这里data-file_type属性中,指定了文件的类型,接受ZIP,PNG文件,用|分隔开来,其中data-max-size指定文件的大小,这里是1MB。然后使用jquery 进行判断 

<code class="language-javascript">$('input[type=file]').each(function()  
{  
    if(typeof $(this).attr('data-file_type') == 'string')  
    {  
        var file_types = $(this).attr('data-file_type').split('|');  
    }  
        
    var mimes = get_mimes(file_types);  
  
         //文件要求的指定大小  
    var max_size = parseInt($(this).attr('data-max_size'));  
  
    $(this).change(function(evt)  
    {  
        var finput = $(this);  
  
        var files = evt.target.files; // 获得文件对象  
  
                var output = [];  
  
        for (var i = 0, f; f = files[i]; i++)  
        {  
            //检查文件的类型是否符合指定要求  
            if(jQuery.inArray(f.type , mimes) == -1)  
            {  
                alert('File type '+ f.type + ' not allowed');  
                $(this).val('');  
                continue;  
            }  
  
            //检查文件大小  
            else if(f.size > max_size)  
            {  
                alert('Maximum file size is ' + max_size + ' bytes.');  
                $(this).val('');  
            }  
  
            //Validation ok  
            else  
            {  
                output.push('[b]', f.name, '[/b] (', f.type || 'n/a', ') - ', f.size, ' bytes, last modified: ', f.lastModifiedDate.toLocaleDateString() );  
            }  
        }  
  
        finput.after('<div>' + output.join('') + '</div>');  
    });  
});  </code>

在上面的代码中, var mimes = get_mimes(file_types); 其实是一个方法,如下: 

<code class="language-javascript">/* 
    Get the mimes of a list of extensions as an array 
*/  
function get_mimes(extensions)  
{  
    var mimes = [];  
    for(var i in extensions)  
    {  
        var ext = extensions[i];  
  
        if(ext in mime_types)  
        {  
            var mime = mime_types[ext];  
  
            if($.isArray(mime))  
            {  
                jQuery.merge(mimes , mime);  
            }  
            else  
            {  
                mimes.push(mime);  
            }  
        }  
    }  
  
    return mimes;  
}  </code>

这里其实就是将ZIP,PNG这样的类型传入,然后返回一个这类文件对应的MIME/TYPE,比如定义一个 mime_types数组,如下:

<code class="language-javascript">var mime_types = {  
"gif":"image\/gif", 
"jpeg":["image\/jpeg","image\/pjpeg"], 
"jpg":["image\/jpeg","image\/pjpeg"], 
"jpe":["image\/jpeg","image\/pjpeg"], 
"png":["image\/png","image\/x-png"], 
.................. 
} </code>

重点关注的是HTML 5中,新的文件API,可以在客户端马上判断文件类型,如下: 

<code class="language-javascript">var files = evt.target.files; // 获得文件对象,是一个集合,可以有多个文件 
var file_count = files.length;  //文件长度 

var file_1 = files[0]; // or files.item(0);这里获得多个文件中的第一个文件 

var name = file_1.name; //获得文件名 
var size = file_1.size;//获得文件大小 
var type = file_1.type; //文件类型 
var lastModifiedDate = file_1.lastModifiedDate;  //文件修改时间 </code>

详细的关于HTML 5文件上传的,见: http://www.w3.org/TR/file-upload/

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
您如何將圖像插入HTML頁面?您如何將圖像插入HTML頁面?May 04, 2025 am 12:02 AM

toinsertanimageIntoanhtmlpage,usethetagwithsrcandaltattributes.1)usealttextforAcccessibilityandseo.2)instementRcsetForresponSiveImages.3)applylazyloadingWithLoadingWithLoading =“ lazy” tooptimizeperformance.4)tooptimizeperformance.4)

HTML的目的:啟用Web瀏覽器可以顯示內容HTML的目的:啟用Web瀏覽器可以顯示內容May 03, 2025 am 12:03 AM

HTML的核心目的在於讓瀏覽器理解並展示網頁內容。 1.HTML通過標籤定義網頁結構和內容,如、到、等。 2.HTML5增強了多媒體支持,引入了和標籤。 3.HTML提供了表單元素,支持用戶交互。 4.優化HTML代碼可提升網頁性能,如減少HTTP請求和壓縮HTML。

為什麼HTML標籤對Web開發很重要?為什麼HTML標籤對Web開發很重要?May 02, 2025 am 12:03 AM

htmltagsareessentialforwebdevelopmentastheyandendenhancewebpages.1)semantictagsimproveaccessibilityandseo.2)semanteLayOut,語義和互動性。 3)poseriblesibilityandseoandseo.3)poseriblesoftagscanoftagscanoftagscanoptagscanoptimizeperefeneandimizeanDenSuroceRecRoscRoss-BrowserCrowserCercerComercompatibility。

說明將一致的編碼樣式用於HTML標籤和屬性的重要性。說明將一致的編碼樣式用於HTML標籤和屬性的重要性。May 01, 2025 am 12:01 AM

一致的HTML編碼風格很重要,因為它提高了代碼的可讀性、可維護性和效率。 1)使用小寫標籤和屬性,2)保持一致的縮進,3)選擇並堅持使用單引號或雙引號,4)避免在項目中混合使用不同風格,5)利用自動化工具如Prettier或ESLint來確保風格的一致性。

如何在 Bootstrap 4 中實現多項目輪播?如何在 Bootstrap 4 中實現多項目輪播?Apr 30, 2025 pm 03:24 PM

在Bootstrap4中實現多項目輪播的解決方案在Bootstrap4中實現多項目輪播並不是一件簡單的事情。雖然Bootstrap...

deepseek官網是如何實現鼠標滾動事件穿透效果的?deepseek官網是如何實現鼠標滾動事件穿透效果的?Apr 30, 2025 pm 03:21 PM

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

HTML 視頻的播放控件樣式怎麼修改HTML 視頻的播放控件樣式怎麼修改Apr 30, 2025 pm 03:18 PM

無法直接通過CSS修改HTML視頻的默認播放控件樣式。 1.使用JavaScript創建自定義控件。 2.通過CSS美化這些控件。 3.考慮兼容性、用戶體驗和性能,使用庫如Video.js或Plyr可簡化過程。

在手機上使用原生select會帶來哪些問題?在手機上使用原生select會帶來哪些問題?Apr 30, 2025 pm 03:15 PM

在手機上使用原生select的潛在問題在開發移動端應用時,我們常常會遇到選擇框的需求。通常情況下,開發者傾...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)