`

AJAX实现的文件上传进度控制的研究

    博客分类:
  • ajax
阅读更多

dhtmlXVault 用户指南

1.主要特征

 

  跨浏览器/多平台支持

  每个文件都有进度条

  全部用JavaScript控制

  支持ASP.NET

  支持JSP

  支持PHP/Perl

2.支持的浏览器

·  IE 5.x 和以上版本

·  Mozilla 1.4和以上版本

·  FireFox 0.9和以上版本

 

3. dhtmlXVault工作过程

   3.1在页面上初始化一个对象

 
 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 

 
3.2服务器处理描述
·  Upload处理

 -是上传得主要处理方法.它是在服务器上来解析请求对象(来自表单数据的多个部分)和存储文件。  同样,收集进度信息和在应用和会话上下文保存它,因为下个处理会读到它。

  ·  GetInfo 处理 针对返回进度信息来处理(作为上传的百分率)。

·  GetId 处理 只要你一上传,处理就会调用,来获取唯一的文件传输Id。这个值在以后上传得进度信息会读到。  
 
 

 

4.运行的界面:

5.dhtmlXVault.js

dhtmlXVaultObject = function()

{

    this.isUploadFile = "false";

    this.isUploadFileAll = "false";

    this.countRows = null;

    this.idRowSelected = null;

    this.sessionId = null;

 

    //server handlers

    this.pathUploadHandler = null;

    this.pathGetInfoHandler = null;

    this.pathGetIdHandler = null;

 

    //demo

    this.isDemo = true;

    this.progressDemo = null;

 

    //from PHP

    this.MAX_FILE_SIZE = null;

    this.UPLOAD_IDENTIFIER = null;

}

 

dhtmlXVaultObject.prototype.setServerHandlers = function(uploadHandler, getInfoHandler, getIdHandler)

{

    this.pathUploadHandler = uploadHandler;

    this.pathGetInfoHandler = getInfoHandler;

    this.pathGetIdHandler = getIdHandler;

 

}

 

dhtmlXVaultObject.prototype.create = function(htmlObject)

{

 

    this.parentObject = document.getElementById(htmlObject);

 

    this.parentObject.style.position = "relative";

    this.parentObject.innerHTML = "<iframe src='about:blank' id='dhtmlxVaultUploadFrame' name='dhtmlxVaultUploadFrame'  style='display:none'></iframe>";

 

    this.containerDiv = document.createElement("div");

    this.containerDiv.style.cssText = "position:absolute;overflow-y:auto;height:190px;background-color:#FFFFFF;border:1px solid #878E95;top:10px;left:10px;z-index:10;width:410px";

    this.parentObject.appendChild(this.containerDiv);

 

    this.container = document.createElement("div");

    this.container.style.position = "relative";

 

    var str = "<table style='background-color:#EDEEEF;border: 1px solid #7A7C80;' border='0'>" +

              "<tr><td style='width:420px' colspan=3 align='center' id = 'cellContainer' >" +

              "<div style='height:200px;'></div>" +

              "</td></tr>" +

              "<tr><td style=';width: 80px; height: 32px;' align='left'></td>" +

              "<td style='width: 200px; height: 32px;' align='left'>" +

              "<img _onclick='UploadControl.prototype.uploadAllItems()' _ID='ImageButton3'  src='../share/imgs/btn_upload.gif' style='cursor:pointer'/></td>" +

              "<td style='width: 140px; height: 32px;' align='right'>" +

              "<img _onclick='return UploadControl.prototype.removeAllItems()' _ID='ImageButton3'  src='../share/imgs/btn_clean.gif' style='cursor:pointer;margin-right:20px'/></td></tr></table>" +

 

              "<div _id='fileContainer' style='width:84px;overflow:hidden;height:32px;left:0px;direction:rtl;position:absolute;top:211px'>" +

              "<img style='z-index:2' src='../share/imgs/btn_add.gif'/>" +

              "<input type='file' id='file1'  name='file1' value='' class='hidden' style='cursor:pointer;z-index:3;left:7px;position:absolute;height:25px;top:0px'/></div>";

 

    this.container.innerHTML = str;

 

    var self = this;

    this.container.childNodes[0].rows[1].cells[1].childNodes[0].onclick = function() {

        self.uploadAllItems()

    };

    this.container.childNodes[0].rows[1].cells[2].childNodes[0].onclick = function() {

        self.removeAllItems()

    };

    this.fileContainer = this.container.childNodes[1];

    this.fileContainer.childNodes[1].onchange = function() {

        self.addFile()

    };

 

    this.uploadForm = document.createElement("form");

 

    this.uploadForm.method = "post";

    this.uploadForm.encoding = "multipart/form-data";

   <span styl

1
2
分享到:
评论

相关推荐

    通过AJAX监控文件上传进度

    ### 通过 AJAX 监控文件上传进度 在 Web 开发中,文件上传是常见的功能之一。传统的文件上传机制是基于 HTTP 协议的表单提交,即用户通过 `&lt;input type="file"&gt;` 选择文件后,整个表单或文件被一次性发送到服务器。...

    AJAX+JSP实现基于WEB的文件上传的进度控制

    下面我们将详细探讨如何利用AJAX和JSP实现基于WEB的文件上传进度控制。 一、AJAX基础 AJAX是一种创建动态网页的技术,它允许在后台与服务器交换数据并更新部分网页内容,而无需重新加载整个页面。核心组件包括...

    Ajax实现文件上传

    为了显示文件上传进度,我们需要监听XMLHttpRequest对象的`progress`事件。该事件会在数据传输过程中被触发,通过`event.loaded`和`event.total`可以获取已上传和总大小,进而计算出进度: ```javascript xhr....

    AJAX实现基于WEB的文件上传的进度控制源代码

    通过分析这些代码,我们可以深入理解如何将AJAX和Prototype结合,实现基于Web的文件上传进度控制。 总的来说,这个源代码示例旨在教授开发者如何使用AJAX和Prototype库创建一个用户友好的文件上传功能,同时展示...

    ajax实现文件上传源码

    **Ajax 实现文件上传技术详解** 在Web开发中,用户经常需要进行文件上传操作,而传统的文件上传方式通常会刷新整个页面,导致用户体验不佳。...希望这个教程能帮助你理解并实现Ajax文件上传功能。

    AJAX实现基于WEB的文件上传的进度控制

    为了解决这一问题,本文将详细介绍如何利用AJAX技术实现基于Web的文件上传进度控制。这种方法不仅可以提高用户体验,还能让开发者更好地监控文件上传过程,从而实现更高效的文件管理。 #### 二、解决方案概述 该...

    SpringMVC+Ajax异步文件上传

    - **事件监听**:`Ajax`可以监听文件上传的进度,如开始、加载中、完成等状态,通过回调函数实时更新用户界面。 - **JSON响应**:后端处理完文件上传后,可以返回一个JSON对象,包含成功与否的信息,前端根据这个...

    用SSH+ajax实现的上传进度条,仿qq邮箱的大文件上传窗体

    提供的JavaScript代码示例中,通过`functionsAlert(txt)`函数实现了弹出框的功能,用于展示文件上传进度。该函数通过创建DOM元素的方式构建了一个带有遮罩层的弹出框,并通过`XMLHttpRequest`或`ActiveXObject`对象...

    jquery+ajax实现文件上传的js

    本文将深入探讨如何利用jQuery和AJAX实现文件上传,并重点介绍`ajaxfileupload.js`这个jQuery插件。 首先,jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等任务。而AJAX(Asynchronous ...

    Ajax实现文件上传进度条

    Ajax技术的出现为解决这一问题提供了可能,它允许我们在不刷新整个页面的情况下进行异步通信,从而实现文件上传进度条的功能。下面将详细讲解如何利用Ajax实现文件上传进度条。 首先,我们需要理解Ajax的基本原理。...

    大文件上传, ajax 实现, 支持10G以上的上传

    本教程将基于标题“大文件上传,ajax实现,支持10G以上的上传”和描述,详细介绍如何使用AJAX实现大文件上传,并探讨其背后的原理和技巧。 首先,理解大文件上传的关键在于分块上传。当文件过大时,一次性上传整个...

    ajax异步文件上传,servlet处理

    为了提供更好的用户体验,开发者通常会采用AJAX(Asynchronous JavaScript and XML)技术实现异步文件上传,避免传统方式下页面刷新带来的中断感。AJAX允许在后台与服务器进行通信,而无需刷新整个页面。本篇文章将...

    利用AJAX控制上传文件进度,并生成进度条

    通过以上步骤,我们可以实现一个完整的AJAX文件上传进度控制,以及对应的进度条显示。这种实现方式提高了用户的交互体验,避免了页面刷新,使得大文件上传更加友好。同时,通过服务器端实时反馈进度,确保了上传过程...

    ajax文件上传带进度条,带判断上传文件是否合法

    综上所述,通过AJAX实现文件上传带进度条的关键在于使用XMLHttpRequest对象进行异步通信,监听文件选择、上传进度和请求状态的变化。同时,通过前端验证确保上传的文件符合服务器的预期,从而提供更好的用户体验。在...

    ajax实现文件上传

    在文件上传场景中,Ajax 可以实现后台静默上传,用户无需等待页面刷新,可以看到实时的上传进度,提升了交互性。 在传统的文件上传方式中,用户选择文件后,浏览器会发送一个包含文件数据的表单请求到服务器,这...

    asp.net ajax 多文件上传

    ASP.NET AJAX 多文件上传是一种在Web应用中实现高效、用户友好的文件上传方式,它结合了ASP.NET技术和AJAX(Asynchronous JavaScript and XML)的优势,提供了异步上传功能,使得用户无需等待整个页面刷新就能完成...

    上传文件AJAX

    虽然可以手动实现AJAX文件上传,但有许多优秀的库和框架可以帮助我们简化工作,如jQuery的`$.ajax`或`$.fileUpload`,AngularJS的`ng-file-upload`,React的`react-dropzone`等。 ### 总结 "上传文件AJAX"技术使得...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签

    在这个项目中,SSH2框架与Ajax技术结合,实现了一个带进度条的文件上传功能,并且这个功能已经被封装成了自定义标签,方便在页面上直接使用。 首先,让我们深入理解SSH框架的每个组件: 1. **Struts2**:Struts2是...

Global site tag (gtag.js) - Google Analytics