double perMaxSize = 1.5;//单个文件允许的max大小

String sizeUnit = "MB";//perMaxSize数据对应的单位

String ext = "*.jpg;*.jpeg;*.gif";//允许上传的文件类型

//文件上传提交的目标页面

StringBuffer uploadUrl = new StringBuffer("http://");

uploadUrl.append(request.getHeader("Host"));

uploadUrl.append(request.getContextPath());

uploadUrl.append("/admin/swfuploadexample/UploadFileExampleSubmit.jsp教程");

%>

批量相片上传

var swfu;

SWFUpload.onload = function () {

var settings = {

flash_url : "js/swfupload.swf",

upload_url: "",

post_params: {

"user_id" : "stephen830",

"pass_id" : "123456"

},

file_size_limit : " ",

file_types : "",

file_types_description : "",

file_upload_limit : 100,

file_queue_limit : 0,

custom_settings : {

progressTarget : "fsUploadProgress",

cancelButtonId : "btnCancel",

uploadButtonId : "btnUpload",

myFileListTarget : "idFileList"

},

debug: false,

auto_upload:false,

// Button Settings

button_image_url : "images/XPButtonUploadText_61x22.png",    // Relative to the SWF file

button_placeholder_id : "spanButtonPlaceholder",

button_width: 61,

button_height: 22,

// The event handler functions are defined in handlers.js

swfupload_loaded_handler : swfUploadLoaded,

file_queued_handler : fileQueued,

file_queue_error_handler : fileQueueError,

file_dialog_complete_handler : fileDialogComplete,

upload_start_handler : uploadStart,

upload_progress_handler : uploadProgress,

upload_error_handler : uploadError,

upload_success_handler : uploadSuccess,

upload_complete_handler : uploadComplete,

queue_complete_handler : queueComplete,    // Queue plugin event

// SWFObject settings

minimum_flash_version : "9.0.28",

swfupload_pre_load_handler : swfUploadPreLoad,

swfupload_load_failed_handler : swfUploadLoadFailed

};

swfu = new SWFUpload(settings);

}

-----------------------------------------------

批量上传相片 (支持的相片类型:;单个相片最大不能超过: )

文件名 文件大小 状态  

等待上传 0 个 ,成功上传 0 个

很抱歉,相片上传界面无法载入,请将浏览器设置成支持JavaScript。

相片上传界面正在载入,请稍后...

相片上传界面载入失败,请确保浏览器已经开启对JavaScript的支持,并且已经安装可以工作的Flash插件版本。

很抱歉,相片上传界面无法载入,请安装或者升级您的Flash插件。

请访问: Adobe网站 获取最新的Flash插件。

----------------

UploadFileExample.jsp对应的处理页面 --> UploadFileExampleSubmit.jsp

(1)请确保已经看完我的另一篇文章(上传下载组件SmartUpload使用方法 http://stephen830.javaeye.com/admin/blogs/255010),先搞好这个才能开始下面的操作

(2)写一个对应上传方法类,com.soft4j.bo.PhotoMgr.java,其中的方法就是文章下面提到的public static String fileUpload(SmartUpload su,PageContext pageContext) throws Exception {...}

String pageErrorInfo = null;

SmartUpload su = null;

try{

su = new SmartUpload();

su.initialize(pageContext);

su.upload();

pageErrorInfo = PhotoMgr.fileUpload(su,pageContext);

if(pageErrorInfo==null){

out.print("successed");

}

}catch(Exception e){

pageErrorInfo = e.getMessage();

}finally{

su = null;

if(pageErrorInfo!=null){

out.print(pageErrorInfo);

}

}

%>

String pageErrorInfo = null;

SmartUpload su = null;

try{

su = new SmartUpload();

su.initialize(pageContext);

su.upload();

pageErrorInfo = PhotoMgr.fileUpload(su,pageContext);

if(pageErrorInfo==null){

out.print("successed");

}

}catch(Exception e){

pageErrorInfo = e.getMessage();

}finally{

su = null;

if(pageErrorInfo!=null){

out.print(pageErrorInfo);

}

}

%>

--------------------

第3步 准备后台的文件上传功能。也就是上面文件[UploadFileExampleSubmit.jsp]中用到的[PhotoMgr.fileUpload(su,pageContext)]方法

Java代码

/**

* 文件上传方法.

* @param su

* @param pageContext

* @return

* @throws Exception

*/

public static String fileUpload(SmartUpload su,PageContext pageContext) throws Exception {

com.soft4j.httpupload4j.File suFile = null;

int fileCount = 0;

try {

//获取传递过来的参数

String userId = su.getRequest().getParameter("user_id");

String passId = su.getRequest().getParameter("pass_id");

String fileExt = "";

int fileSize = 0;

String AllowedExtensions = ",jpg,jpeg,gif,";//允许上传的文件类型

double maxFileSize = 1.5*1024;//单文件最大大小,单位KB

//校验文件类型和大小

for (int i=0; i

suFile = su.getFiles().getFile(i);

if (suFile.isMissing())

continue;

//校验文件大小

fileSize = suFile.getSize()/1024;//字节转换成KB

if(fileSize==0) fileSize=1;

if(maxFileSize

//校验文件类型

if (suFile.getFileExt() == null

|| "".equals(suFile.getFileExt())) {

fileExt = ",,";

} else {

fileExt = "," + suFile.getFileExt().toLowerCase() + ",";

}

if (!"".equals(AllowedExtensions)

&& AllowedExtensions.indexOf(fileExt) == -1) {

throw new Exception("您上传的文件[" + suFile.getFileName()

+ "]的类型为系统禁止上传的文件类型,不能上传!");

}

fileCount++;

}

-----------------------

if (fileCount==0) throw new Exception("请选择上传的文件");

//准备保存文件

String filePath="D:tomcatwebapps教程testphoto";//这里填写项目中存放上传文件的物理路径

for (int i=0; i

suFile = su.getFiles().getFile(i);

suFile.saveAs(filePath+suFile.getFileName(),SmartUpload.SAVE_PHYSICAL);//保存文件

}

//成功返回null

return null;

} finally {

//

}

}

/**

* 文件上传方法.

* @param su

* @param pageContext

* @return

* @throws Exception

*/

public static String fileUpload(SmartUpload su,PageContext pageContext) throws Exception {

com.soft4j.httpupload4j.File suFile = null;

int fileCount = 0;

try {

//获取传递过来的参数

String userId = su.getRequest().getParameter("user_id");

String passId = su.getRequest().getParameter("pass_id");

String fileExt = "";

int fileSize = 0;

String AllowedExtensions = ",jpg,jpeg,gif,";//允许上传的文件类型

double maxFileSize = 1.5*1024;//单文件最大大小,单位KB

//校验文件类型和大小

for (int i=0; i

suFile = su.getFiles().getFile(i);

if (suFile.isMissing())

continue;

//校验文件大小

fileSize = suFile.getSize()/1024;//字节转换成KB

if(fileSize==0) fileSize=1;

if(maxFileSize

//校验文件类型

if (suFile.getFileExt() == null

|| "".equals(suFile.getFileExt())) {

fileExt = ",,";

} else {

fileExt = "," + suFile.getFileExt().toLowerCase() + ",";

}

if (!"".equals(AllowedExtensions)

&& AllowedExtensions.indexOf(fileExt) == -1) {

throw new Exception("您上传的文件[" + suFile.getFileName()

+ "]的类型为系统禁止上传的文件类型,不能上传!");

}

fileCount++;

}

if (fileCount==0) throw new Exception("请选择上传的文件");

//准备保存文件

String filePath="D:tomcatwebappstestphoto";//这里填写项目中存放上传文件的物理路径

for (int i=0; i

suFile = su.getFiles().getFile(i);

suFile.saveAs(filePath+suFile.getFileName(),SmartUpload.SAVE_PHYSICAL);//保存文件

}

//成功返回null

return null;

} finally {

//

}

}

----------------

关于jsp页面和java方法我不做过多的说明了,应该已经比较清楚了。

本文自发布后,受到了很多朋友的关注,也为不少的朋友提供了帮助,我很高兴。

下面将朋友们遇到的一些问题作汇总后需要注意的一些地方列了出来:

<1> 功能实现需要flash插件支持。

flash版本为 flash 9.0.124 或者 flash 10.0.12.36 版本(这是最新的flash10插件). 如果不是的话,可以去flash官网 http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash 进行在线安装。

<2> UploadFileExample.jsp 中的 upload_url参数设置。

参数需要使用 http://....../UploadFileExampleSubmit.jsp 这样的完整路径.

<3> 关于获取参数 post_params中的参数值。

post_params: {"user_id" : "stephen830","pass_id" : "123456"} 中的参数,不能使用普通的request.getParameter("")方法来获取,

而必须用你的上传方法对应的特定方法来获取,比如,我这里用smartupload,则获取方法就是String userId = su.getRequest().getParameter("user_id");

<4> 上传后不管成功还是失败,都需要有返回值。

这个返回值将传递到对应js中。返回值在UploadFileExampleSubmit.jsp中设置,成功则 out.print("successed"); 失败则 out.print(pageErrorInfo);//pageErrorInfo为错误信息。

该返回值将传递给js目录下的handlers.js文件,具体的方法是 function uploadSuccess(file, serverData) {...} 。

有些朋友的上传成功后out.print("successed"); 发现js收到的"successed"前面会有隐藏字符,遇到这种情况可以更改function uploadSuccess(file, serverData) {...} 中的

var isSuccess = (serverData.indexOf("successed")==0?true:false);

改为

var isSuccess = (serverData.indexOf("successed")>-1?true:false);

就可以了。

<5> 附件中增加一个完整的测试功能例子。

附件名 PROJECT_swfupload.zip 下载

附录:swfupload 文件批量上传压缩包 swfupload.zip(支持最新的flash10插件) (附件中没有java类,请自己准备1个java类,将上面的方法复制进去)

为方便了解和调试功能,在附件中增加了一个完整的工程Example,附件名(PROJECT_swfupload.zip),大家可以直接使用来测试功能。

swfupload java实例_swfupload例子相关推荐

  1. 20 个使用 Java CompletableFuture的例子

    转载自 20 个使用 Java CompletableFuture的例子 这篇文章介绍 Java 8 的 CompletionStage API和它的标准库的实现 CompletableFuture. ...

  2. ZooKeeper官方文档学习笔记04-ZooKeeper的Java实例

    碎碎念:启动成功了一半.可以启动,可以debug,但是有些方法无法访问,而且create在哪里,我还不清楚.那个DataMonitor,不能完全按照官网写,要像我一样改一下,不然会报werror,因为 ...

  3. java实例方法,Java实例和静态方法

    本篇文章帮大家学习java实例和静态方法,包含了java实例和静态方法使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 类可以有两种类型的方法:实例方法和类方法. 实例方法 ...

  4. Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找

    ylbtech-Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找 1.返回顶部 1. Java 实例 - 数组排序及元素查找  Java 实例 以下实例演示 ...

  5. Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化

    ylbtech-Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化 1.返回顶部 1. Java 实例 - 字符串格式化  Java 实例 以下实例演示了通过 f ...

  6. jni java共享变量_Android JNI开发系列(十)JNI访问 Java 实例变量和静态变量

    JNI访问 Java 实例变量和静态变量 Java 中的实例变量和静态变量,在本地代码中如何来访问和修改.静态变量也称为类变量(属性),在所有实例对象中共享同一份数据,可以直接通过类名.变量名来访问. ...

  7. java 方法重载 应用举例,Java 实例 - 重载(overloading)方法中使用 Varargs

    以下实例演示了如何在重载方法中使用可变参数:/* author by w3cschool.cc Main.java */public class Main { static void vaTest(i ...

  8. Java实例开发教程:SpringBoot开发案例

    最近在做邮件发送的服务,正常来说SpringBoot整合mail还是很方便的,然而来了新的需求:A请求使用邮箱C发送,B请求使用邮箱D发送,也就是说我们需要配置两套发送服务. 单实例 首先我们来看下单 ...

  9. java实例变量可以被覆盖吗_Java继承覆盖实例变量

    参见英文答案 > Java Inheritance – instance variables overriding                                    3个 我 ...

  10. java使用varargs,Java 实例 – Varargs 可变参数使用 - Java 基础教程

    Java 实例 Java1.5提供了一个叫varargs的新功能,就是可变长度的参数. "Varargs"是"variable number of arguments&q ...

最新文章

  1. VS2005+WINDDK+Driver Studio 3.2编译出第一个测试驱动程序
  2. 更改vsftp端口号
  3. 浏览器扩展系列————透明浏览器窗口的实现
  4. LeetCode 669. Trim a Binary Search Tree修剪二叉搜索树 (C++)
  5. C#抽象类与接口的比较
  6. HTML--HTML对象的关于位置和大小的属性的图解
  7. ALSA播放时杂音问题
  8. VS2015 优化选项的开启
  9. RTCP 协议的 NACK 报文
  10. Pandas query 的用法, df.query
  11. Scrapy学习笔记(3)爬取知乎首页问题及答案
  12. 数据库实验--存储过程实验
  13. Java专题 Java使用第一步 环境搭建JDK及JRE(含多版本JDK切换思路)
  14. vue3 + vite + ts 设置 @ 路径别名
  15. 判断一个字符串是否为全字母句
  16. AWS实例3T磁盘初始化分区及docker环境部署
  17. Unity Android平台接入支付宝SDK
  18. 【线性系统】六、能控性和能观性
  19. 【微信小程序自学第一天】主要内容是text插件以及button按钮插件以及image图像插件
  20. 安装deepin配置dtk开发环境

热门文章

  1. matlab 图像处理之拟合圆
  2. steam搬砖项目超完整版实操免费分享
  3. RaspberrIPCam – Full HD IP Camera based on Raspberry Pi
  4. c语言程序设计万年历要求功能如下: 1,查询某年某月某日是星期几,c语言万年历...
  5. 基于MTCNN+arcface的人脸检测和人脸识别
  6. 答题小程序之调查问卷模板开发
  7. c++一本通在线测评网站 1002:输出第二个整数
  8. 2022苏州市小学信息学奥赛T2-汉诺塔
  9. 2022-2027年中国衬衫行业市场调研及未来发展趋势预测报告
  10. 文本表示与文本特征提取的区别