SWFUpload简单使用样例 Java版(JSP)

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

实现上传,分为三步:

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

Js代码  

  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、页面显示部分:

Html代码  

  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处理文件上传部分:

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. }
时间: 2024-11-15 09:44:13

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

Java 多线程编程两个简单的样例

/** * @author gao */ package gao.org; public class RunnableDemo implements Runnable{ @Override public void run() { // TODO Auto-generated method stub for(int i=0;i<10;i++){ System.out.println("新线程输出:"+i); } } public static void main(String []

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

Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,Java去调用C/C++的代码事实上就是去调用C/C++提供的方法.所以,第一步,我们要创建一个类,而且定义一个Native方法.例如以下: JniTest类: public class JniTest { public native String getTestString(); } 能够看到,在这

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

inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yahoo!捐献给Apache的一个项目,眼下还在Apache孵化器(incubator)阶段,眼下版本号是v0.5.0.Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-like语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运

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

什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MSC 替换了之前的 JMX Kernel 和 MicroContainer,它主要特定能够总结例如以下三点: 高并发容器(A highly concurrent state machine) 无多相位,设计简单(No multiple phases, much simpler) 不依赖 JMX 和 J

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

Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmlzYWw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 收集统计信息: 创建B树索引: 2. 运行select id from tbl_plan;查看它的运行计划: 由于创建了

Android中关于JNI 的学习(四)简单的样例,温故而知新

在第零篇文章简单地介绍了JNI编程的模式之后.后面两三篇文章,我们又针对JNI中的一些概念做了一些简单的介绍,也不知道我究竟说的清楚没有.但相信非常多童鞋跟我一样.在刚開始学习一个东西的时候,入门最好的方式就是一个现成的样例来參考,慢慢研究,再学习概念.再回过来研究代码,加深印象,从而開始慢慢掌握. 今天我们就再来做一个小Demo.这个样例会比前面略微复杂一点.可是假设阅读过前面几篇文章的话,理解起来也还是非常easy的. 非常多东西就是这样.未知的时候非常可怕.理解了就非常easy了. 1)我

Activiti的简单入门样例(经典的请假样例)

经典的请假样例: 流程例如以下,首先须要部门经理审批.假设请假天数大于2天,则须要总经理审批,否则HR审批就可以 一:创建maven项目,项目结构例如以下: 增加依赖 pom.xml <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.17.0</version> </depe

怎样把报表放到网页中显示(Web页面与报表简单集成样例)

1.问题描写叙述 如今用户开发的系统基本上趋向于BS架构的浏览器/server模式.这些系统可能由不同的语言开发.如HTML.ASP.JSP.PHP等.因此须要将制作好的报表嵌入到这些页面中. FineReport制作出的报表能够通过Frame框架集成到Web页面中. 2.将报表显示在Frame框架内 2.1集成方法 报表作为页面的一部分,能够以iFrame方式嵌入在网页中.指定iFrame的src就可以. 1.     <iframe id="reportFrame" widt

socket编程——一个简单的样例

从一个简单的使用TCP样例開始socket编程,其基本过程例如以下: server                                                  client +++++++                                          ++++++++ 创建socket                                          创建socket +++++++