热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

AjaxUploadComponent

1.首先下载需要的.jar包:commons-fileupload-1.1.jarcommons-io-1.1.jarcommons-logging.jardwr.jarxiaole-upload.jar2.配置web.xml文件?xmlversion1.0encodingISO-8859-1?!DOCTYPEweb-

1.首先下载需要的.jar包:
commons-fileupload-1.1.jar
commons-io-1.1.jar
commons-logging.jar
dwr.jar
xiaole-upload.jar

2.配置web.xml文件


    Ajax Upload

   
dwr-invoker
        DWR Servlet
uk.ltd.getahead.dwr.DWRServlet
       
debug
false
       

       
logLevel
WARN
       

   

   
 AjaxUpload
 upload.AjaxUploadTest
   

   
dwr-invoker
/dwr/*
   

   
 AjaxUpload
 /upload.do
   

   
   
index.jsp
   

3.配置dwr.xml文件

    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://getahead.org/dwr/dwr20.dtd">


   
       

       

       

   

4.编写index.jsp文件
<%@ page cOntentType="text/html;charset=UTF-8" language="java" %>
<%
String path = request.getContextPath();
%>

   
       
       
       
       
       
       
   

My_AJAX_UpLoad/upload.do" enctype="multipart/form-data" method="post" Onsubmit="startProgress()">
   


        Web upload
   

   


       

       

       

       

       


   




5.编写upload.js文件
function refreshProgress()
{
    UploadMonitor.getUploadInfo(updateProgress);
}

function updateProgress(uploadInfo)
{
    if (uploadInfo.inProgress)
    {
document.getElementById('uploadbutton').disabled = true;
document.getElementById('file1').disabled = true;
document.getElementById('file2').disabled = true;

        var progressPercent = Math.ceil((uploadInfo.bytesRead / uploadInfo.totalSize) * 100);

        document.getElementById('progressBarText').innerHTML = 'upload in progress: ' + progressPercent + '%';

        document.getElementById('progressBarBoxContent').style.width = parseInt(progressPercent * 3.5) + 'px';

        window.setTimeout('refreshProgress()', 1000);
    }
    else
    {
document.getElementById('uploadbutton').disabled = false;
document.getElementById('file1').disabled = false;
document.getElementById('file2').disabled = false;
    }

    return true;
}

function startProgress()
{
document.getElementById('progressBar').style.display = 'block';
document.getElementById('progressBarText').innerHTML = 'upload in progress: 0%';
    document.getElementById('uploadbutton').disabled = true;

    // wait a little while to make sure the upload has started ..
    window.setTimeout("refreshProgress()", 1500);
    return true;
}

6.编写AjaxUploadTest.java文件
package upload;

import com.xiaole.upload.*;

import java.io.IOException;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;

public class AjaxUploadTest extends HttpServlet {
 private static final long serialVersiOnUID= -7510933967709667319L;

 @Override
 protected void doPost(HttpServletRequest request,
   HttpServletResponse response) throws ServletException, IOException {

  HashMap hm = new HashMap();
  hm.put(1, "txt,doc");
  hm.put(2, "mp3");

  AjaxUpload au = new AjaxUpload(request,
    getServletContext().getRealPath("/") + "tmp",             //这里设置的是临时路径
    getServletContext().getRealPath("/") + "upload",        //这里是实际路径
    -1,                                                                               //这里是上传的大小,-1为不限
    hm);
  try {
   au.upload();
  } catch (IsNotMulipartContentException inmce) {
   inmce.printStackTrace(); // 不是multipart的表单数据
  } catch (SizeLimitExceededException slee) {
   slee.printStackTrace(); // 超过上传大小的限制
   System.out.println("超过上传大小的限制");
  } catch (InvalidPostfixException ipe) {
   ipe.printStackTrace();
   System.out.println("不合法的后缀");
  } catch (Exception e) {
   e.printStackTrace();
  }

 }
}


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍了如何使用 HTML 和 CSS 对文件上传按钮进行样式美化,使用户界面更加友好和美观。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文探讨了如何像程序员一样思考,强调了将复杂问题分解为更小模块的重要性,并讨论了如何通过妥善管理和复用已有代码来提高编程效率。 ... [详细]
  • 本文详细介绍了如何使用Maven高效管理多模块项目,涵盖项目结构设计、依赖管理和构建优化等方面。通过具体的实例和配置说明,帮助开发者更好地理解和应用Maven在复杂项目中的优势。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 本文详细介绍了如何利用Go语言和WebSockets技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
author-avatar
手机用户2502927973
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有