有关uploadifive的使用经验
这段时间做了一个项目用到uploadifive上传控件,和uploadify不同,这个控件是基于HTML5的版本而不用支持falsh,因而移动端也可以使用。
整理用过的相关属性与方法:
| 属性 | 作用 |
| auto | 是否自动上传,默认true |
| uploadScript | 上传路径 |
| fileObjName | file文件对象名称 |
| buttonText | 上传按钮显示文本 |
| queueID | 进度条的显示位置 |
| fileType | 上传文件类型 |
| multi | 是否允许多个文件上传,默认为true |
| fileSizeLimit | 允许文件上传的最大尺寸 |
| uploadLimit | 一次可以上传的最大文件数 |
| queueSizeLimit | 允许队列中存在的最大文件数 |
| removeCompleted | 隐藏完成上传的文件,默认为false |
| 方法 | 作用 |
| onUploadComplete | 文件上传成功后执行 |
| onCancel | 文件被删除时触发 |
| onUpload | 开始上传队列时触发 |
| onFallback | HTML5 API不支持的浏览器触发 |
例子如下:
1.首先页面需要引进js和css文件

2.uploadifive控件的具体应用
$(function() {
$('#signup-idimage1').uploadifive({
'auto' : true,
'uploadScript' : 'uploadPhoto',
'fileObjName' : 'upload',
'buttonText' : '上传照片',
'queueID' : 'tip-queue1',
'fileType' : 'image/*',
'multi' : false,
'fileSizeLimit' : 5242880,
'uploadLimit' : 1,
'queueSizeLimit' : 1,
'onUploadComplete' : function(file, data) {
var obj = JSON.parse(data);
if (obj.img == "500") {
alert("系统异常!");
} else {
$("#frontSide").val(obj.img);
document.getElementById("submit").disabled = false;
}
},
onCancel : function(file) {
$("#frontSide").val("");
/* 注意:取消后应重新设置uploadLimit */
$data = $(this).data('uploadifive'),
settings = $data.settings;
settings.uploadLimit++;
alert(file.name + " 已取消上传~!");
},
onFallback : function() {
alert("该浏览器无法使用!");
},
onUpload : function(file) {
document.getElementById("submit").disabled = true;//当开始上传文件,要防止上传未完成而表单被提交
},
});
});
3.简化后的页面
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1">
<title>注册</title>
<link rel="stylesheet" type="text/css"
href="../uploadiFive/uploadifive.css" />
<script src="../js/jquery-1.7.2.js"></script>
<script src="js/mobileupload.js"></script>
<script src="../uploadiFive/jquery.uploadifive.js"></script>
</head>
<body>
<form class="cd-form" id="subForm"
action="openaccount" method="post">
<div id="cd-signup">
<p class="fieldset">
<label class="image-replace cd-photo1" for="signup-idimage1"></label>
<input class="full-width has-padding has-border"
id="signup-idimage1" type="file" name="upload">
<input type="hidden" name="frontSide" id="frontSide">
<div id="tip-queue1"></div>
</p>
</p>
<p class="fieldset">
<input class="full-width2" id="submit" type="submit" value="提交">
</p>
</form>
</body>
</html>
(IE9及以下不支持下面这些功能,其它浏览器最新版本均已支持。)
1、允许上传文件数量
只允许上传一个文件:<input type="file" single>
2、上传指定的文件格式
<input type="file" accept="image/gif,image/png" />
这里的上传格式仅指打开上传弹窗选择文件时默认的文件格式,可手动修改成其它文件格式。
如果不限制上传图片的格式可写成:accept="image/*"
其它格式参考如下:
| *.3gpp | audio/3gpp, video/3gpp | 3GPP Audio/Video |
| *.ac3 | audio/ac3 | AC3 Audio |
| *.asf | allpication/vnd.ms-asf | Advanced Streaming Format |
| *.au | audio/basic | AU Audio |
| *.css | text/css | Cascading Style Sheets |
| *.csv | text/csv | Comma Separated Values |
| *.doc | application/msword | MS Word Document |
| *.dot | application/msword | MS Word Template |
| *.dtd | application/xml-dtd | Document Type Definition |
| *.dwg | image/vnd.dwg | AutoCAD Drawing Database |
| *.dxf | image/vnd.dxf | AutoCAD Drawing Interchange Format |
| *.gif | image/gif | Graphic Interchange Format |
| *.htm | text/html | HyperText Markup Language |
| *.html | text/html | HyperText Markup Language |
| *.jp2 | image/jp2 | JPEG-2000 |
| *.jpe | image/jpeg | JPEG |
| *.jpeg | image/jpeg | JPEG |
| *.jpg | image/jpeg | JPEG |
| *.js | text/javascript, application/javascript | JavaScript |
| *.json | application/json | JavaScript Object Notation |
| *.mp2 | audio/mpeg, video/mpeg | MPEG Audio/Video Stream, Layer II |
| *.mp3 | audio/mpeg | MPEG Audio Stream, Layer III |
| *.mp4 | audio/mp4, video/mp4 | MPEG-4 Audio/Video |
| *.mpeg | video/mpeg | MPEG Video Stream, Layer II |
| *.mpg | video/mpeg | MPEG Video Stream, Layer II |
| *.mpp | application/vnd.ms-project | MS Project Project |
| *.ogg | application/ogg, audio/ogg | Ogg Vorbis |
| application/pdf | Portable Document Format | |
| *.png | image/png | Portable Network Graphics |
| *.pot | application/vnd.ms-powerpoint | MS PowerPoint Template |
| *.pps | application/vnd.ms-powerpoint | MS PowerPoint Slideshow |
| *.ppt | application/vnd.ms-powerpoint | MS PowerPoint Presentation |
| *.rtf | application/rtf, text/rtf | Rich Text Format |
| *.svf | image/vnd.svf | Simple Vector Format |
| *.tif | image/tiff | Tagged Image Format File |
| *.tiff | image/tiff | Tagged Image Format File |
| *.txt | text/plain | Plain Text |
| *.wdb | application/vnd.ms-works | MS Works Database |
| *.wps | application/vnd.ms-works | Works Text Document |
| *.xhtml | application/xhtml+xml | Extensible HyperText Markup Language |
| *.xlc | application/vnd.ms-excel | MS Excel Chart |
| *.xlm | application/vnd.ms-excel | MS Excel Macro |
| *.xls | application/vnd.ms-excel | MS Excel Spreadsheet |
| *.xlt | application/vnd.ms-excel | MS Excel Template |
| *.xlw | application/vnd.ms-excel | MS Excel Workspace |
| *.xml | text/xml, application/xml | Extensible Markup Language |
| *.zip | aplication/zip | Compressed Archive |
这里要慎重说明的是:网上好多教程都说 excel过滤要用“accept="application/msexcel"” ,其实是大错特错!测试了,不行! 我也是在做phpExcel导出excel文件是,看到了,有一行代码:
header(‘Content-Type: application/vnd.ms-excel‘); //excel 2003
header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet‘); //excel 2007
我才明白,原来 .xls 格式的文件,要用这个 MIME 类型。 测试,成功!

浙公网安备 33010602011771号