插件下载地址:http://www.phpletter.com/contents/ajaxfileupload/ajaxfileupload.js
注意:新版的jquery中移除了handleError方法,该插件需要用到这个方法,我们需要将以下代码加入到ajaxfileupload.js文件中
handleError: function( s, xhr, status, e ) { // If a local callback was specified, fire it if ( s.error ) { s.error.call( s.context || s, xhr, status, e ); } // Fire the global callback if ( s.global ) { (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] ); } }
首先需要引入文件:
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajaxfileupload.js"></script>
<form name="newform" enctype="multipart/form-data" action="" method="post"> <ul class="formbody"> <li class="formblock colorblock"> <span>上传图片: </span> <input id="flinkimg" type="file" name="flinkimg" class="input" /> </li> <li class="formblock"> <input type="button" name="newflink" class="button" value="上传" /> </li> </ul> </form>
注意:使用ajaxfileupload上传文件,可以不需要form
JS代码:
$("input:[name=newflink]").click(function(){ var furl = $("form[name=newform]").attr('action'); $.ajaxFileUpload ({ url : furl, secureuri :false, fileElementId :'flinkimg', dataType : 'json', success : function (data, status){ alert(data.data.errormsg); if (!data.data.errorcode) { location.href = location; } }, error: function (s, data, status, e){ alert(data); } }) });
主要参数说明:
1,url表示处理文件上传操作的文件路径,可以测试URL是否能在浏览器中直接访问,如:upload.php
2,fileElementId表示文件域ID,如上:flinkimg
3,secureuri是否启用安全提交,默认为false
4,dataType数据数据,一般选json,javascript的原生态
5,success提交成功后处理函数
6,error提交失败处理函数
上面有两个方法,一个动态加载小图标提示函数loading()和ajaxFileUpload文件上传$.ajaxFileUpload()函数,这与我们使用jQuery.ajax()函数差不多,使用很简单
相关的错误提示
1,SyntaxError: missing ; before statement错误
如果出现这个错误就需要检查url路径是否可以访问
2,SyntaxError: syntax error错误
如果出现这个错误就需要检查处理提交操作的PHP文件是否存在语法错误
3,SyntaxError: invalid property id错误
如果出现这个错误就需要检查属性ID是否存在
4,SyntaxError: missing } in XML expression错误
如果出现这个错误就需要检查文件域名称是否一致或不存在
5,其它自定义错误
大家可使用变量$error直接打印的方法检查各参数是否正确,比起上面这些无效的错误提示还是方便很多。