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. 融云(找到“每个App都有沟通的需求”的细分市场)

    近日,国内著名App驾考宝典和融云达成合作,为应用增加IM功能,实现亿级用户之间聊天.消息一出,IM(即时通讯)领域的大佬,同时也是个上线不到两岁的新生力量,再次引发了行业的关注. 对业内人士而言,即 ...

  2. IIS Web服务扩展中添加ASP.NET4.0

    问题 服务器上安装了ASP.NET 4.0.30319组件,但是在IIS的Web服务扩展中并没有找到ASP.NET v4.0.30319这项,这导致基于.NET4.0开发的网页都无法正常浏览(404错 ...

  3. javascript面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

    面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下来将为大家讲解在JS中面向对象的实现.   工厂 ...

  4. C 语言资源大全中文版

    C 语言资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-c 是 koz.ross 发起维护的 C 语言资源列表,内容包括了: ...

  5. linux脚本初体验

    前言 第一次写linux脚本,有点紧张. 1. 写一个寻找特定用户的脚本文件? #! /bin/sh who | grep $1 其中脚本第一行用来告诉kernel去使用/bin/sh来解释这个脚本: ...

  6. mssql数据库游标批量改动符合条件的记录

    //需求:因为项目刚上传,没有票数,为了表现出一定的人气,须要在一開始把各项目的票数赋一个值 , 但每一个项目不能一样,否则easy看出问题,呵呵 . DECLARE @Id varchar(50) ...

  7. OMR数据查询

    查询 1.查询所有的. var query = from p in _Context.Info select p; var query = _Context.Info; 2.单条件查询 等值查 var ...

  8. sublime_text 破解

    之前一直使用vi的,但是总觉的vi差了一点什么,不够现代化,老古董了.没办法,只是因为vi在linux下面是预装的,有些时候必须使用vi. 不过除了这种情况之外,vi的可配置性比较高,但是在使用了一段 ...

  9. DataSnap起源于MIDAS(十几篇博客)

    作为MIDAS起始于Delphi3,Delphi4是MIDAS II,Delphi5中是MIDASIII,而后基于COM远程数据模块方式使用TCP/IP,HTTP,(D)COM构建出强大的通讯能力.从 ...

  10. [Java学习笔记]Java Tips

    1.Java没有sizeof关键字 , volatile是java关键字.详情见:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166. ...