SWFUpload官方的样例都是PHP的,在这里提供一个Java版的最简单的使用样例,使用JSP页面完毕全部操作。

实现上传,分为三步:

1、JavaScript设置SWFUpload部分(与官方样例类似):

  1. var upload;
  2. window.onload = function() {
  3. upload = new SWFUpload({
  4. // 处理文件上传的url
  5. upload_url: "${pageContext.request.contextPath}/swfupload/example.jsp?upload=1",
  6. // 上传文件限制设置
  7. file_size_limit : "10240",  // 10MB
  8. file_types : "*.jpg;*.gif;*.png",   //此处也能够改动成你想限制的类型,比方:*.doc;*.wpd;*.pdf
  9. file_types_description : "Image Files",
  10. file_upload_limit : "0",
  11. file_queue_limit : "1",
  12. // 事件处理设置(全部的自己定义处理方法都在handler.js文件中)
  13. file_dialog_start_handler : fileDialogStart,
  14. file_queued_handler : fileQueued,
  15. file_queue_error_handler : fileQueueError,
  16. file_dialog_complete_handler : fileDialogComplete,
  17. upload_start_handler : uploadStart,
  18. upload_progress_handler : uploadProgress,
  19. upload_error_handler : uploadError,
  20. upload_success_handler : uploadSuccess,
  21. upload_complete_handler : uploadComplete,
  22. // 按钮设置
  23. button_image_url : "swfupload/xpbutton.png",    // 按钮图标
  24. button_placeholder_id : "spanButtonPlaceholder",
  25. button_width: 61,
  26. button_height: 22,
  27. // swf设置
  28. flash_url : "swfupload/swfupload.swf",
  29. custom_settings : {
  30. progressTarget : "fsUploadProgress",
  31. cancelButtonId : "btnCancel"
  32. },
  33. // Debug 设置
  34. debug: false
  35. });
  36. }

2、页面显示部分:

  1. <div class="flash" id="fsUploadProgress"></div>
  2. <div style="padding-left: 5px;">
  3. <span id="spanButtonPlaceholder"></span>
  4. <input id="btnCancel" type="button" value="取消" onclick="cancelQueue(upload);"
  5. disabled="disabled" style="margin-left: 2px; height: 22px; font-size: 8pt;" />
  6. </div>

3、Java处理文件上传部分:

  1. String uploadSign = request.getParameter("upload");
  2. String rootPath = request.getParameter("rootPath");
  3. String path = request.getParameter("path");
  4. if(rootPath == null) rootPath = "";
  5. rootPath = rootPath.trim();
  6. if(rootPath.equals("")){
  7. rootPath = application.getRealPath("/swfupload/files");
  8. }
  9. if(path == null) {
  10. path = rootPath;
  11. }else{
  12. path = new String(Base64.decodeBase64(path.getBytes()));
  13. }
  14. //上传操作
  15. if(null != uploadSign && !"".equals(uploadSign)){
  16. FileItemFactory factory = new DiskFileItemFactory();
  17. ServletFileUpload upload = new ServletFileUpload(factory);
  18. //upload.setHeaderEncoding("UTF-8");
  19. try{
  20. List items = upload.parseRequest(request);
  21. if(null != items){
  22. Iterator itr = items.iterator();
  23. while(itr.hasNext()){
  24. FileItem item = (FileItem)itr.next();
  25. if(item.isFormField()){
  26. continue;
  27. }else{
  28. //以当前精确到秒的日期为上传的文件的文件名称
  29. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddkkmmss");
  30. String type = item.getName().split("\\.")[1];//获取文件类型
  31. File savedFile = new File(path,sdf.format(new Date())+"."+type);
  32. item.write(savedFile);
  33. }
  34. }
  35. }
  36. }catch(Exception e){
  37. e.printStackTrace();
  38. }
  39. }

SWFUpload简单使用样例 Java版(JSP)的更多相关文章

  1. Introspector(内省)简单演示样例 与 简单应用

    简单演示样例: package com.asdfLeftHand.test; import java.beans.BeanDescriptor; import java.beans.BeanInfo; ...

  2. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

  3. Thrift的安装和简单演示样例

    本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述                                           ...

  4. [hadoop系列]Pig的安装和简单演示样例

    inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...

  5. Android中关于JNI 的学习(零)简单的样例,简单地入门

    Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,J ...

  6. Android通过startService播放背景音乐简单演示样例

    关于startService的基本使用概述及其生命周期可參见博客<Android中startService的使用及Service生命周期>. 本文通过播放背景音乐的简单演示样例,演示sta ...

  7. 一则简单演示样例看Oracle的“无私”健壮性

    Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  8. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  9. 使用CEF(二)— 基于VS2019编写一个简单CEF样例

    使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...

随机推荐

  1. QFrame好像是万能的(可以随意画线,或者图片,放在其它元素之间做点缀,还可OnClick)

    QFrame *fr2=new QFrame(this); fr2->setGeometry(0,140,90,40); fr2->setStyleSheet("backgrou ...

  2. 14.18 InnoDB Backup and Recovery 备份和恢复:

    14.18 InnoDB Backup and Recovery 备份和恢复: 安全数据库管理的关键是 做定期的备份,依赖你的数据卷, MySQL server的数量和数据库的负载,你可以使用那些技术 ...

  3. Windows Azure 安全最佳实践 - 第 3 部分:确定安全框架

    构建云应用程序时,安全始终是计划和执行Windows Azure的首要核心因素.第 1 部分提出安全是一项共同责任,Windows Azure为您的应用程序提供超出内部部署应用程序需求的强大安全功能. ...

  4. VHDL TestBench 测试终止时自动结束仿真——assert方法

    可在结束仿真位置添加如下代码: assert false report "Simulation is finished!" severity Failure; 则在Modelsim ...

  5. [置顶] ARM-Linux下WEB服务器Boa的移植、配置和运行测试

    Linux下使用的轻量级WEB服务器主要有:lighttpd.thttpd.shttpd和boa等等,而Boa是使用最为广泛的轻量级WEB服务器之一(当然,阿帕奇是世界使用排名第一的Web服务器软件) ...

  6. smartforms客制页格式

    smartforms需要打印非A4纸时需要手动创建页格式:创建事务代码:spad, 操作的时候需要 把所有步骤都做一遍方可正常打印,不然只能停留在预览界面无法打印.

  7. 解决Java compiler level does not match the version of the installed Java project facet.问题

    其实之前遇到过Java compiler level does not match the version of the installed Java project facet.这个问题,因为当时没 ...

  8. 利用ScktSrvr打造多功能Socket服务器

    Socket服务端编程中最重要的也是最难处理的工作便是客户请求的处理和数据的接收和发送,如果每一个Socket服务器应用程序的开发都要从头到尾处理这些事情的话,人将会很累,也会浪费大量时间.试想,如果 ...

  9. zabbix 监控jmx 需要--enable-java

    安装Javagateway如果原来已经安装zabbix,只需要再添加以下zabbix-java # tar zxvf zabbix-2.2.0.tar.gz # cd zabbix-2.2.0 # . ...

  10. Problem K: Yikes -- Bikes!

    http://acm.upc.edu.cn/problem.php?id=2780 昨天做的题,没过……!!!伤心……题意:给你n个单位,n-1组关系,让你单位换算……解题思路:Floyd算法自己听别 ...