jQuery技术

jQuery异步上传文件

字号+ 作者:H5之家 来源:H5之家 2015-11-19 08:45 我要评论( )

我想通过jQuery异步上传文件,这是我的HTML: spanFile/spaninput type="file" size="10"/input type="button" value="Upload"/ 这是我的javascript: $(document).ready(function () { $("#uploadbutton").click(function () {var filename = $("#file").val(

 

我想通过jQuery异步上传文件,这是我的HTML:

 

<span>File</span> <input type="file" size="10"/> <input type="button" value="Upload"/>

这是我的javascript:

 

$(document).ready(function () { $("#uploadbutton").click(function () { var filename = $("#file").val(); $.ajax({ type: "POST", url: "addFile.do", enctype: 'multipart/form-data', data: { file: filename }, success: function () { alert("Data Uploaded: "); } }); }); });

我只得到上传的文件名,咋办?

 

我现在用了 jQuery Form插件来解决这个问题:

有没有不用该插件来实现呢?

 

解决方法:

可以采用HTML5,用jQuery,Ajax实现文件上传,不仅如此,你可以做文件验证(名称,大小,MIME类型)或利用HTML5的进度标签(或者div)处理进度事件。

 

最近我也在做文件上传,我不想用flash、iframe或其它插件,经过一番研究,我想出了解决方案。

HTML:

 

<form enctype="multipart/form-data"> <input type="file" /> <input type="button" value="Upload" /> </form> <progress></progress>

首先,你可以做一些验证,例如文件的onChange事件:

 

$(':file').change(function(){ var file = this.files[0]; name = file.name; size = file.size; type = file.type; //your validation });

按钮点击触发Ajax:

 

$(':button').click(function(){ var formData = new FormData($('form')[0]); $.ajax({ url: 'upload.php', //server script to process data type: 'POST', xhr: function() { // custom xhr myXhr = $.ajaxSettings.xhr(); if(myXhr.upload){ // check if upload property exists myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload } return myXhr; }, //Ajax事件 beforeSend: beforeSendHandler, success: completeHandler, error: errorHandler, // Form数据 data: formData, //Options to tell JQuery not to process data or worry about content-type cache: false, contentType: false, processData: false }); });

处理进度:

 

function progressHandlingFunction(e){ if(e.lengthComputable){ $('progress').attr({value:e.loaded,max:e.total}); } }

 

 

HTML5的文件上传非常简单,但必须在支持HTML5的浏览器中运行。

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 7个有用的jQuery小技巧

    7个有用的jQuery小技巧

    2016-02-26 13:02

  • jQuery制作select双向选择列表

    jQuery制作select双向选择列表

    2016-02-26 11:00

  • 全面详细的jQuery常见开发技巧手册

    全面详细的jQuery常见开发技巧手册

    2016-02-26 10:02

  • 强大的jQuery移动插件Top 10

    强大的jQuery移动插件Top 10

    2016-02-25 09:05

网友点评