热门标签 | 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();
  }

 }
}


推荐阅读
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文详细介绍了如何在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 ... [详细]
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
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社区 版权所有