随着移动互联网的不断发展,由于网络速度的提高,上传功能变得越来越常见。在手机上进行上传操作,有着自己特殊的需求和限制,此时jQuery Mobile可以帮助我们实现这些操作。
jQuery Mobile可以通过FileAPI来获得用户上传的文件,然后通过ajax请求将文件发送到服务器。使用jQuery Mobile的上传功能必须要加载ajaxForm.js和ajaxForm.css两个文件,可以通过CDN获取:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<link rel="stylesheet" href="http://www.jqmobile.com/wp-content/themes/jqm-2/css/jqm-2.css">
接下来,我们需要构建一个表单,使得用户可以顺利的上传文件。input元素需使用type="file"的类型,这会让表单的提交方式自动变为POST方法。
<form id="upload_form">
<input type="file" name="image">
<button type="submit">上传</button>
</form>
最后,我们需要构造一段JavaScript代码,使得表单能够自动提交且上传成功之后加载提示框。
$(document).ready(function(){
$('#upload_form').on('submit', function(e){
e.preventDefault();
$(this).ajaxSubmit({
error: function(xhr){
console.log(xhr.responseText);
alert('上传失败,请重试!');
},
success: function(response){
$('#upload_form').hide();
showSuccess();
}
});
});
});
function showSuccess(){
$.mobile.loading( 'hide' );
$.mobile.changePage( "#success_page", { transition: "pop", role: "dialog" } );
}
使用jQuery Mobile实现上传功能,本质上还是使用了FileAPI和ajax请求这些HTML5技术,可以在移动端流畅的上传文件。