`

jquery的三种ajax上传组件

 
阅读更多

最近选择上传组件,顺便总结一下这三个上传组件

1.ajaxFileUpload

网址:http://www.phpletter.com/Demo/AjaxFileUpload-Demo/

适合当个文件的上传,多个文件的话,需要多个文件输入框

引入:jquery-1.9.1.js

ajaxfileupload.js

js部分:

function fileupload(){
   if($("#filePath").val()==""){
    alert_message("上传文件不能为空!");
    return false;
   }

  var txtImg_url=$("#filePath").val().toLowerCase();

  var txtImg_ext=txtImg_url.substring(txtImg_url.length-3,txtImg_url.length);

  if (txtImg_ext!="png" && txtImg_ext!="gif" ){

    alert_message("请选择png或gif格式的文件!");

    $("#filePath").select();

    $("#filePath").focus();

    return false;

  }

  var imagefile = document.getElementById("filePath").files[0];

  var size = imagefile.size/1024.0;

  if (size > 300){

      oms_message("图片大小不超过300K!");

      return false;

  }

   $.ajaxFileUpload({
     url:"sys/function/upload",//需要链接到服务器地址
     secureuri:false,
     fileElementId:"filePath",//文件选择框的id属性
     dataType: 'text/xml',   //也可以是json
     success: function (data) {
      alert_message("上传成功");
      $('#myId').val(data);
     },
     error: function (data, status, e){
      alert(e);
     }
    }
   );
   return false;
  }

html部分:

<input name="imageurl" type="hidden" id="myId"/>

<input type="file" class="validate[required] text-input"  name="filePath" id="filePath"/>
<input type="button" class="submit" name="fileLoad" id="fileLoad" value="上传" onClick="fileupload()"/>

Java代码部分:

@RequestMapping(value="/sys/function/upload",produces="text/plain;charset=UTF-8")
 @ResponseBody
 public String ajaxUpload(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{
  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  String fileName = "";
  @SuppressWarnings("deprecation")
  String path = request.getRealPath("/");
  String realPath = "";
  for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) { 
         String key = (String) it.next(); 
         MultipartFile imgFile = multipartRequest.getFile(key); 
         fileName = imgFile.getOriginalFilename();
         File file = new File(path+fileName);
         imgFile.transferTo(file);
         realPath = path + fileName;
  }
  return realPath;
 }

 

2.uploadify

网址:http://www.uploadify.com/

demo:http://www.uploadify.com/demos/

引入:jquery-1.9.1.js、uploadify.css、jquery.uploadify.min.js

uploadify-flash版本:v2.2

 

js部分:

$('#fileInput').uploadify({
    'swf'      : 'js/uploadify/uploadify.swf',
   'uploader' : 'sys/function/upload;jsessionid='+$('#sessionId').val(),
   'buttonText' : '浏览...',
   'uploadLimit' : 5,
    'auto':false,
    queueSizeLimit:1,
    'progressData' : 'percentage'
     });

html部分:

//加session是因为在firefox和chrome下上传失败,网上说是由于session失效导致,IE下没有问题

<input id="sessionId" type="text" value="${pageContext.session.id}"/>

<div>
 <input type="file" name="fileInput" id="fileInput" />
 <a href="javascript:$('#fileInput').uploadify('upload','*')">开始上传</a>
 </div>

 

Java部分同上

 

3.jquery.MultiFile

jquery.MultiFile网址:http://www.fyneworks.com/jquery/multiple-file-upload/

jqueryform网址:http://jquery.malsup.com/form/#file-upload

引入:jquery-1.9.1.js、jquery.form.js、jquery.MultiFile.js

结合jqueryform实现ajax多文件上传

 

css部分:

<style>

.progress { position:relative; width:200px; border: 1px solid #ddd; padding: 1px; border-radius: 3px; }
.bar { background-color: #B4F5B4; width:0%; height:20px; border-radius: 3px; }
.percent { position:absolute; display:inline-block; top:3px; left:48%; }
#funDetail td,#funDetail tr{ padding:4px; border:#333 1px solid; border-collapse:collapse; cellspacing:0px; }
.MultiFile-label{ position:absolute; top:75px; left:296px;}
</style>

js部分:

$('#uploadAdd').click(function(){
   if ($('#filePath_wrap_list').html() == ""){
     alert_message("请先上传文件再提交!");
     return false;
     }else {
      $('#addUploadForm').submit();
     }
  });

$('#filePath').MultiFile({
      accept:'gif|jpeg|png|jpg',
      max:1,
      STRING: {
       remove:'移除',
       selected:'已经选择了: $file',
       denied:'不能选择: $ext!',
       duplicate:'文件重复:\n$file!'
      },
      autoIntercept:['ajaxForm']
  });

 

var bar = $('.bar');
   var percent = $('.percent');
   var status = $('#status');
   $('#addUploadForm').ajaxForm({
       beforeSend: function() {
           status.empty();
           var percentVal = '0%';
           bar.width(percentVal);
           percent.html(percentVal);
       },
       uploadProgress: function(event, position, total, percentComplete) {
           var percentVal = percentComplete + '%';
           bar.width(percentVal);
           percent.html(percentVal);
       },
       success: function(data) {
           var percentVal = '100%';
           bar.width(percentVal);
           percent.html(percentVal);
           $('#myId').val(data.msg);
           $('input:file').MultiFile('reset');
       },
    complete: function(xhr) {

    },
    url:'sys/function/upload',
    type:'post',
    dataType:'json'
   });

 

 

html部分:

<form id="addUploadForm" method="post" ENCTYPE="multipart/form-data">
     <ul>
  <li><label style="display:inline; float:left; height:30px; line-height:30px; width:90px; margin-left:70px;">图片路径:</label><input  name="filePath" type="file" class="text-input" id="filePath" style="display:inline; padding-left:0px; margin-left:0px; float:left; clear:right; height:24px; padding-right:0px; margin-right:0px; width:280px;" size="27"/>
  </li>
  <li><input id="uploadAdd" class="submit" type="submit" value="上传" style="padding-left:0px; margin-left:0px; height:24px;"/></li>
  <li>
      <div class="progress" style="float:left; margin-top:14px; margin-left:160px; clear:both; width:264px;">
         <div class="bar"></div >
         <div class="percent">0%</div >
      </div>
      <div id="status"></div>
     </li>
        </ul>
 </form>

 

java部分:

基本同上,但是文件名是返回json格式

 

 


 

  • js.rar (91.1 KB)
  • 下载次数: 99
0
5
分享到:
评论

相关推荐

    jQuery多张图片同时上传组件

    **jQuery多张图片同时上传组件** 在Web开发中,用户界面的交互性和用户体验至关重要,而图片上传功能是许多网站和应用程序的重要组成部分。本组件利用jQuery库和layer.js弹层插件,实现了一种高效、易用的多张图片...

    struts2+jquery+ajax文件异步上传

    Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...

    Ajax 文件上传组件

    Ajax 文件上传组件是一种在网页上实现异步文件上传的技术,它允许用户在不刷新整个页面的情况下,通过Ajax技术将文件发送到服务器。这种组件在现代Web应用中非常常见,能够提供更好的用户体验,尤其是在处理大量数据...

    jquery+ajax上传解析文件

    在Web开发中,jQuery、Ajax和JSON是三个关键的技术组件,它们共同构成了高效、异步的数据交互机制。这里我们将深入探讨如何使用jQuery结合Ajax技术来实现文件上传,并通过JSON进行数据解析。 首先,jQuery是一个...

    jquery+ajax实现文件上传的js

    在Web开发中,jQuery与AJAX的结合使用广泛地用于创建动态、无刷新的用户体验,尤其是在文件上传场景中。本文将深入探讨如何利用jQuery和AJAX实现文件上传,并重点介绍`ajaxfileupload.js`这个jQuery插件。 首先,...

    jquery flash上传组件

    《jQuery Flash上传组件详解》 在Web开发中,文件上传功能是不可或缺的一部分,尤其是在需要用户交互和数据交换的场合。jQuery作为一个广泛使用的JavaScript库,提供了丰富的插件来增强这一功能,其中jQuery Flash...

    基于bootstrap图片上传_jquery支持多张上传

    8. **响应式设计**:由于Bootstrap的响应式布局,图片上传组件也能适应不同设备的屏幕尺寸,确保在手机、平板和桌面电脑等不同设备上都有良好的展示效果。 9. **安全性和性能优化**:在实际应用中,还需要关注上传...

    jquery 无刷新上传 ajax 无刷新上传

    在IT行业中,无刷新上传是一种...总结起来,这个例子展示了如何利用jQuery和Ajax技术实现无刷新文件上传,结合第三方插件简化了实现步骤。通过这种方式,开发者可以创建更友好、高效的Web应用程序,提高用户满意度。

    Jquery progressbar通过Ajax请求获取后台进度演示

    在本文中,我们将深入探讨如何使用jQuery Progressbar与Ajax相结合,来实时展示后台处理任务的进度,特别是在一个基于Struts2框架的应用中。这个过程包括前端的jQuery Progressbar组件的设置,以及后端如何发送进度...

    PHP+jQuery+Ajax多图片上传

    Ajax上传原理 Ajax(Asynchronous JavaScript and XML)技术允许在不刷新整个页面的情况下与服务器进行数据交换,从而实现了页面的异步更新。在多图片上传场景中,Ajax可以实现图片逐个上传,同时更新页面上的预览...

    jquery+SWFUpload+COS上传组件的使用.doc

    jQuery + SWFUpload + COS(腾讯云对象存储)上传组件提供了一种高效、友好的文件上传解决方案。本文档旨在详细介绍如何使用这个组合实现高效的文件上传功能。 **1. 组件介绍** jQuery是一个广泛使用的JavaScript...

    用jquery实现ajax上传文件.net版

    2. **AJAX上传**:jQuery的`$.ajax()`函数是实现无刷新上传的核心。我们需要设置请求的URL(通常是.NET后台的处理文件上传的控制器或API)、HTTP方法(POST)、数据类型(通常为JSON或FormData)以及数据(上传的...

    jquery文件上传插件 jquery.uploadify.js

    在Web开发中,文件上传功能是一项常见的需求,而jQuery.uploadify.js是一款高效且用户友好的文件上传插件,尤其对于需要兼容多种浏览器的项目来说,它提供了一种优雅的解决方案。这款插件原本不支持IE10,但在经过...

    jquery 大文件上传

    5. **Ajax上传**:使用jQuery的`$.ajax`或者`$.ajaxForm`函数,设置上传URL,将FormData对象作为数据源,设置`processData`和`contentType`为`false`,以保留原始数据格式。 6. **进度回调**:利用XMLHttpRequest的...

    web开发上传组件

    总之,这个基于JQuery的Web开发上传组件提供了一种简单而强大的方式来集成文件上传功能,它利用了JQuery的灵活性和易用性,使得开发者可以轻松地在项目中实现文件上传功能,提升网站或应用的功能性和用户满意度。

    asp.net ajax 无组件上传图片

    ASP.NET AJAX 无组件上传图片是一种技术,它允许用户在不刷新整个页面的情况下,通过Ajax技术实现图片的异步上传。这种技术提高了用户体验,因为用户可以在上传过程中继续浏览页面的其他部分,而无需等待页面刷新。...

    jQuery图片上传插件支持多图批量上传与多文件批量上传控件

    本文将详细讲解“jQuery图片上传插件”,它支持多图批量上传和多文件批量上传功能,适用于各种网页应用。 首先,jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等...

    多附件上传组件 jquery

    另外,为了使界面更加友好,我们可以引入一些现成的jQuery插件,如jQuery File Upload、Plupload等,它们提供了丰富的配置选项和自定义样式,使得文件上传组件更易用且美观。 总结一下,实现多附件上传组件使用...

    不错的ajax上传组件---dhtmlxVault

    **dhtmlxVault**是一个优秀的Ajax上传组件,它在Web应用程序中提供了强大的文件上传功能。Ajax技术使得用户可以在不刷新整个页面的情况下实现文件的上传,提供了更好的用户体验。在这个组件中,用户可以选择多个文件...

Global site tag (gtag.js) - Google Analytics