转至:http://zhangqgc.iteye.com/blog/906419

文件上传工具swfupload

示例:

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

var upload;

window.onload = function() {
upload = new SWFUpload({

// 处理文件上传的url
upload_url: "${pageContext.request.contextPath}/swfupload/example.jsp?upload=1",
// 上传文件限制设置
file_size_limit : "10240", // 10MB
file_types : "*.jpg;*.gif;*.png", //此处也可以修改成你想限制的类型,比如:*.doc;*.wpd;*.pdf
file_types_description : "Image Files",
file_upload_limit : "0",
file_queue_limit : "1",
// 事件处理设置(所有的自定义处理方法都在handler.js文件里)
file_dialog_start_handler : fileDialogStart,
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,
// 按钮设置
button_image_url : "swfupload/xpbutton.png", // 按钮图标
button_placeholder_id : "spanButtonPlaceholder",
button_width: 61,
button_height: 22,
// swf设置
flash_url : "swfupload/swfupload.swf",
custom_settings : {
progressTarget : "fsUploadProgress",
cancelButtonId : "btnCancel"
},
// Debug 设置
debug: false
});
}

2、页面显示部分:

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

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

String uploadSign = request.getParameter("upload");
String rootPath = request.getParameter("rootPath");
String path = request.getParameter("path");
if(rootPath == null) rootPath = "";
rootPath = rootPath.trim();
if(rootPath.equals("")){
rootPath = application.getRealPath("/swfupload/files");
}
if(path == null) {
path = rootPath;
}else{
path = new String(Base64.decodeBase64(path.getBytes()));
}

//上传操作
if(null != uploadSign && !"".equals(uploadSign)){
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
//upload.setHeaderEncoding("UTF-8");
try{
List items = upload.parseRequest(request);
if(null != items){
Iterator itr = items.iterator();
while(itr.hasNext()){
FileItem item = (FileItem)itr.next();
if(item.isFormField()){
continue;
}else{
//以当前精确到秒的日期为上传的文件的文件名
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddkkmmss");
String type = item.getName().split("\\.")[1];//获取文件类型
File savedFile = new File(path,sdf.format(new Date())+"."+type);
item.write(savedFile);
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}

最新文章

  1. MRPT图形界面
  2. C#开发中Windows域认证登录2(扩展吉日嘎拉GPM系统)
  3. hdu----(4521)小明系列问题——小明序列
  4. Java——IO(输入输出流)
  5. 20150906VS小知识
  6. json 得到时分秒为00:00:00,拿不到时分秒 解决办法
  7. Qt之QHeaderView自定义排序(QSortFilterProxyModel)
  8. 使用AFNetworking进行图片上传
  9. CSS样式margin:0 auto不居中
  10. Mybatis JPA 代码构建
  11. 虹软人脸识别ArcFace2.0 Android SDK使用教程
  12. Vue(二十九)页面加载过慢问题
  13. excel数据导入mysql
  14. 【API】NetUserEnum-获取系统所有账户名称
  15. [php] cookie 跨域共享
  16. mysql 更新替换字符串
  17. Android-bindService本地服务-初步-Service返回对象
  18. SpringBoot之整合MyBatis
  19. 实现微信小程序支付
  20. [技巧篇]21.Android Studio的快捷键设置[图片版]

热门文章

  1. Oracle安装时忘记解锁scott用户的解决方案
  2. TDirectory.GetDirectoryRoot获取指定目录的根目录
  3. 让IIS识别PUT和DELETE请求
  4. java 集合(二)
  5. centos6.5搭建vpn服务器
  6. 【Tools】Pro Git 一二章读书笔记
  7. .h头文件、 .lib库文件、 .dll动态链接库文件之间的关系
  8. Ecmall系统自带的分页功能
  9. DataGridView 改变行列颜色
  10. ANDROID_MARS学习笔记_S05_001_用SensorManager获取传感器