本文给大家介绍的是利用Jquery使用HTML5的FormData属性实现对文件的上传的方法和实例,非常的实用,有需要的小伙伴可以参考下。
1.利用Jquery使用HTML5的FormData属性实现对文件的上传
在HTML5以前我们如果需要实现文件上传服务器等功能的时候,有时候我们不得不依赖于FLASH去实现,而在HTML5到来之后,我们很容易的实现对文件的上传,只需要利用HTML5的一个FormData属性,结合Jquery就很容易实现文件的上传,而且读取文件的上传进度,下面这个上传案例就是基于上面所说的实现的,下面我将所所有的JS和CSS以及HTML页面代码放在下面。
注意事项:FormData属性必须依赖于HTML5,所以如果你按照本文代码实现的功能,则浏览器必须升级为最新(支持HTML5 FormData属性)。
2.HTML页面代码如下
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title>使用HTML的FormData属性实现文件上传</title> <link rel="stylesheet" href="../css/fileUpload.css" /> </head> <body> <table id="uploadTable" style="border: 1px;"></table> <br/> <a href="javascript:void(0);" class="input-file"> 添加文件<input type="file" id="txtFile" style="width:200px;" /> </a> <script type="text/javascript" src="../js/jquery-1.7.1-min.js"></script> <script type="text/javascript"> $(function () { $('#uploadTable').SalesMOUNDUpload({ saveUrl: '/Test/Save', jqInput: $('#txtFile'), fnRemove: removeFile, fnComplete: function (d) { window.console.log('complete ' + d); } }); }); function removeFile(d) { $.post('/Test/Remove', { "filename": d }, function(r) { }); } </script> </body> </html>
3.CSS代码如下:
/*源文件头信息: <copyright file="FileUpload.js"> Copyright(c)2014-2034 Kencery.All rights reserved. 个人博客:http://www.cnblogs.com/hanyinglong 创建人:韩迎龙(kencery) 创建时间:2015-6-24 </copyright>*/ body { font-family: "微软雅黑"; font-size: 12px; } .input-file { overflow: hidden; position: relative; } .input-file input { opacity: 0; filter: alpha(opacity=0); font-size: 100px; position: absolute; top: 0; right: 0; } #uploadTable { width: 500px; border-collapse: collapse; border: 1px solid Silver; }
4.JS代码如下:
// 源文件头信息: // <copyright file="FileUpload.js"> // Copyright(c)2014-2034 Kencery.All rights reserved. // 创建人:韩迎龙(kencery) // 创建时间:2015-6-24 // </copyright> ; (function($) { $.fn.SalesMOUNDUpload = function(options) { var defaults = { saveUrl: '', jqInput: '', maxSize: 1024 * 1024 * 100, //100M fnRemove: '', //移除文件 ,参数:文件名 fnComplete: '' //每个文件成功 ,参数:服务器端返回内容 }; var opt = $.extend(defaults, options); function getByteToM(val) { if (isNaN(val)) return val; val = val / (1024 * 1024); val = Math.round(val * 100) / 100; return val; } return this.each(function() { var $this = $(this); $this.empty(); if (typeof FormData == 'undefine') { alert('浏览器版本太低,不支持改上传!'); return; } //表头 if ($this.find('thead').length == 0) { var $thead = $('<thead>'); var $th_tr = $('<tr>'); $th_tr.append('<th>文件名</th>'); $th_tr.append('<th>类型</th>'); $th_tr.append('<th>大小</th>'); $th_tr.append('<th>状态</th>'); $th_tr.append('<th>操作</th>'); $th_tr.appendTo($thead); $this.append($thead); } opt.jqInput[0].addEventListener('change', function(e) { var file = this.files[0]; if (!file) { return; } if (file.size > opt.maxSize) { window.alert('文件超过最大'); return; } var fd = new FormData(); var $table = $this; fd.append("uploadFile", file); var xhr = new XMLHttpRequest(); xhr.open('POST', opt.saveUrl, true); xhr.upload.addEventListener("progress", uploadProgress, false); xhr.addEventListener("load", uploadComplete, false); xhr.addEventListener("error", uploadFailed, false); xhr.addEventListener("abort", uploadCanceled, false); //表中内容 var $tr = $('<tr>'); $tr.append('<td class="upload_name">' + file.name + '</td>'); $tr.append('<td class="upload_type">' + file.type + '</td>'); $tr.append('<td class="upload_size">' + getByteToM(file.size) + 'M' + '</td>'); $tr.append('<td class="upload_status">' + 0 + '</td>'); $tr.append('<td class="upload_action"><a href="javascript:void(0);">' + '取消' + '</a></td>'); $tr.find('.upload_action a').unbind('click').bind('click', function() { xhr.abort(); }); $table.append($tr); function uploadProgress(evt) { if (evt.lengthComputable) { var percentComplete = Math.round(evt.loaded * 100 / evt.total); $tr.find('.upload_status').html(Math.round(percentComplete) + '%'); } else { $tr.find('.upload_status').html('unable to compute'); } } function uploadComplete(evt) { if (evt.target.status == 200) { $tr.find('.upload_status').html('已完成'); $tr.find('.upload_action a').html('删除'); if (typeof opt.fnComplete == 'function') { opt.fnComplete(evt.target.response); } $tr.find('.upload_action').unbind('click').bind('click', removeFile); } } function uploadFailed() { $tr.find('.upload_status').html('<a href="javascript:void(0);">×</a>'); $tr.find('.upload_status a').unbind('click').bind('click', function() { $tr.remove(); }); $tr.find('.upload_action a').html('重试'); $tr.find('.upload_action a').unbind('click').bind('click', function() { xhr.send(fd); }); } function uploadCanceled() { $tr.remove(); } function removeFile() { $tr.remove(); if (typeof opt.fnRemove == 'function') { opt.fnRemove(file.name); } } xhr.send(fd); }, false); }); }; }(jQuery));
以上是利用Jquery使用HTML5的FormData属性实现文件上传的详细内容。更多信息请关注PHP中文网其他相关文章!

H5代码的最佳实践包括:1.使用正确的DOCTYPE声明和字符编码;2.采用语义化标签;3.减少HTTP请求;4.使用异步加载;5.优化图像。这些实践能提升网页的效率、可维护性和用户体验。

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显着的发展。 1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。 2)CSS3增加了动画和过渡功能,使页面效果更加丰富。 3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5不仅仅是HTML5的简称,它代表了一个更广泛的现代网页开发技术生态:1.H5包括HTML5、CSS3、JavaScript及相关API和技术;2.它提供更丰富、互动、流畅的用户体验,能在多设备上无缝运行;3.使用H5技术栈可以创建响应式网页和复杂交互功能。

H5与HTML5指的是同一个东西,即HTML5。HTML5是HTML的第五个版本,带来了语义化标签、多媒体支持、画布与图形、离线存储与本地存储等新功能,提升了网页的表现力和交互性。

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5开发需要掌握的工具和框架包括Vue.js、React和Webpack。1.Vue.js适用于构建用户界面,支持组件化开发。2.React通过虚拟DOM优化页面渲染,适合复杂应用。3.Webpack用于模块打包,优化资源加载。

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5通过语义化元素和ARIA属性提升网页的可访问性和SEO效果。1.使用、、等元素组织内容结构,提高SEO。2.ARIA属性如aria-label增强可访问性,辅助技术用户可顺利使用网页。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver CS6
视觉化网页开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。