国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > HTML > 正文

Html5實(shí)現(xiàn)文件異步上傳功能

2024-08-26 00:19:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1 簡(jiǎn)介

開(kāi)發(fā)文件上傳功能從來(lái)不是一件愉快的事,異步上傳更是如此,使用過(guò)iframe和Flash的上傳方案,也都感覺(jué)十分的別扭。本文簡(jiǎn)要簡(jiǎn)紹利用Html5的FormData實(shí)現(xiàn)文件的異步上傳,還可以實(shí)現(xiàn)上傳進(jìn)度條和文件大小驗(yàn)證等。服務(wù)端使用springMVC的方案進(jìn)行處理。

2 Html代碼

<form id="myForm">    <input type="file" id="u_photo" name="u_photo" />    <input type="button" id="submit-btn" value="上傳" /></form>

3 JQuery上傳

$("#submit-btn").on('click', function() {    $.ajax({        url:"/test/upload",        type:"post",        data:new FormData($("#myForm").get(0)),        //十分重要,不能省略        cache: false,        processData: false,        contentType: false,        success: function () {            alert("上傳成功!");        }    });});

4 JQuery文件大小驗(yàn)證

文件大小的及相應(yīng)行為的控制,需根據(jù)需要自行處理,本方法只是示例方法。

$('#u_photo').on('change', function() {    var file = this.files[0];    if (file.size > 1024*1000) {        alert('文件最大1M!')    }});

5 JQuery進(jìn)度條

在ajax方法中加入xhr即可控制上傳進(jìn)度,進(jìn)度條可以使用html5的progress也可使用其它的進(jìn)度條。顯示及隱藏進(jìn)度條需要自行處理,本方法只是簡(jiǎn)單介紹了進(jìn)度條的基本控制。

xhr: function() {    var myXhr = $.ajaxSettings.xhr();    if (myXhr.upload) {        myXhr.upload.addEventListener('progress', function(e) {            if (e.lengthComputable) {                $('progress').attr({                    value: e.loaded,                    max: e.total,                });            }        } , false);    }    return myXhr;}

6 springMVC服務(wù)端

6.1 maven依賴

<dependency>    <groupId>commons-io</groupId>    <artifactId>commons-io</artifactId>    <version>2.5</version></dependency><dependency>    <groupId>commons-fileupload</groupId>    <artifactId>commons-fileupload</artifactId>    <version>1.3.2</version></dependency>

6.2 servlet-context.xml

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

6.3 Controller

示例程序,并未給出文件驗(yàn)證,存儲(chǔ)及處理的相應(yīng)代碼。

@RequestMapping(value="/test/upload",method = RequestMethod.POST)@ResponseBodypublic String upload(@RequestParam("u_photo") MultipartFile u_photo) {    System.out.println("u_photo="+u_photo.getSize());    return "ok";}

7 兼容性

IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+

8 推薦閱讀

如果對(duì)上述方案不滿意,推薦使用如下的解決方案:

JQuery File Uploader

以上所述是小編給大家介紹的Html5實(shí)現(xiàn)文件異步上傳功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到HTML教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 夏津县| 余江县| 北辰区| 尼玛县| 汝城县| 布拖县| 江门市| 额尔古纳市| 中宁县| 庆元县| 邻水| 丰台区| 汝阳县| 灵石县| 朝阳县| 田林县| 柳江县| 桦南县| 井冈山市| 琼结县| 若尔盖县| 榕江县| 德兴市| 无锡市| 长治市| 东乡族自治县| 柯坪县| 葵青区| 同德县| 驻马店市| 诸暨市| 武城县| 台湾省| 潼南县| 鲁山县| 武胜县| 南乐县| 诏安县| 吴江市| 喀喇沁旗| 怀来县|