easyui SWFUpload
业务背景:实现一个用药人的增加功能,用药人信息中包含附件。如题所示,主要讨论easyui上传的实现。
jsp页面代码(弹出框),一个简单的增加页面
div id=addMedicationDlg class=easyui-window closed=true title= iconCls=icon-add style=width350px; height390px;text-aligncenter; background #fafafa;
div class=easyui-layout fit=true
div region=center border=false style=background#fff;border1px solid #ccc;padding-left 20px;
input type=hidden id=mid name=mid
form id=addMedicationForm method=POST
input type=hidden id=sex
table border=0 class=queryTable style=margin-bottom 0px tr
td class=queryTitle附件:td
td class=queryContent
input class=inputText type=text id=urlkeywords!-- 放入的是附件路径--
input type=hidden id=goodsNo name=goodsNo !-- 附件列表 --
input type=hidden class=inputText id=swfText
span id=keyWordImportBtnspan!--上传按钮--
td
td
<!--显示进度条-->
div id=fsUploadProgressdiv
div id=divStatus style=display none;div
input id=btnCancel type=buttondisabled=disabled style=display none
td
tr
table
table border=0 class=queryTable style=margin-bottom 0px id=fileIdTlb
tbody
tbody
table
form
div
div region=south border=false style=text-aligncenter;height30px;line-height30px;
a class=easyui-linkbutton iconCls=icon-ok href=javascriptvoid(0) onclick=doPostData()确定a
a class=easyui-linkbutton iconCls=icon-cancel href=javascriptvoid(0) onclick=cancelPostData('addMedicationDlg')取消a
div
div
div
js文件代码
/**
* 打开修改&增加用药人窗口
*/
function doModifyMedication (mid){
//弹出修改&增加用药人窗口
$('#addMedicationDlg').window({
title '修改用药人',
iconCls 'icon-edit',
width750,
height550,
left250,
modal true,
shadow true,
collapsible false,
minimizable false,
maximizable false
});
$(#addMedicationDlg).show();
$('#addMedicationDlg').window('move',{top20});
$('#addMedicationDlg').window('open');
//这一步很关键,初始化上传操作
initSWFUpload({
upload_url appPath + pagequeryMedicationkeyWordImport+generateMixed(6),
post_params{},
button_placeholder_id keyWordImportBtn,
upload_start_handler uploadStartFn,
upload_success_handler importOk,
file_types .png;.jpg;.gif,
debugfalse,
custom_settings {
progressTarget fsUploadProgress,
cancelButtonId btnCancel
}
});
}
/**
*保存提交
*/
function doPostData(){
//序列化表单
var userinfo = $('#addMedicationForm').serialize();
doAjax({
urlappPath + 'pagequeryMedicationaddMedication'+ memberId,
type'POST',
datauserinfo,
successfunction(data){
if(data ==true){
$.messager.alert('提示信息','保存成功','info');
$('#selectMedicineManDlg').window('close');
cancelPostData('addMedicationDlg');
lookMedication(memberId);
}else{
$.messager.alert('提示信息','抱歉,操作未能完成,'+data,'error');
}
},
errorfunction(XMLHttpRequest, textStatus, errorThrown){
$.messager.alert('提示信息','抱歉,操作未能完成,'+textStatus,'error');
}
});
}
/**
*取消提交
*@param dlg
*/
function cancelPostData(dlg){
$('#'+dlg).window('close');
}
后台java代码
/**
* 保存文件(在文件初始化的时候执行)
*
* @param request
* @param response
* @param uploadFile
* @throws Exception
*/
@RequestMapping(value = "/keyWordImport")
public Object keyWordImport(HttpServletRequest request,
HttpServletResponse response,
@RequestParam("uploadFile") MultipartFile f) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
HashMap<String, Object> map = new HashMap<String, Object>();
String type = "" ;
String splitKey = ""; //---设置字符集
try {
request.setCharacterEncoding("utf-8");
} catch (Exception e) {
e.printStackTrace();
}
response.setCharacterEncoding("utf-8"); if (null != request.getParameter("splitKey")){
splitKey = request.getParameter("splitKey");
} //---获取文件名称、文件后缀名称以及生成新名称
String oldFileName = f.getOriginalFilename();
if(null!=oldFileName && oldFileName.contains(".")){
type = oldFileName.substring(oldFileName.lastIndexOf(".")).toLowerCase();
}
String newFileName =oldFileName.substring(0,oldFileName.lastIndexOf("."))+String.valueOf(System.currentTimeMillis())+type;
try {
// ---获取文件保存目录名称 String saveFolder = request.getSession().getServletContext()
.getRealPath("upload")
+ "/" + "otcFolder"; String newFileNamePath = "/upload/otcFolder/"+ newFileName;
map.put("newFileName", newFileNamePath); // ---上传
Map<String, Object> res = uploadService.doUpload(saveFolder,
f.getBytes(), newFileName, splitKey, "otcFolder");
// ---返回值
if (0 == (Integer) res.get("error")) {
request.setAttribute("res", "success");
response.getWriter().write(org.json.simple.JSONObject.toJSONString(map));
} else {
request.setAttribute("res",
"err : " + (String) res.get("message"));
}
} catch (Exception e) {
request.setAttribute("res", "err : " + e.getMessage());
logger.error("upload failed in action " + e.getMessage());
}
return null;
}
//保存用药人新增数据
@RequestMapping(value="/addMedication/{memberId}")
@ResponseBody
public String addMedication (HttpServletRequest request ,@PathVariable Long memberId,Medication medication) throws Exception {
String fileList = medication.getGoodsNo();
String temps [] =fileList.split(",");
List<MedicationMemberFile> list =new ArrayList<MedicationMemberFile>();
for (int i = 0 ;i<temps.length ; i++){
MedicationMemberFile medicationMemberFile = new MedicationMemberFile();
if (temps[i].trim().length() >0 || temps[i].trim() != null){
medicationMemberFile.setFilePath(temps[i]);
list.add(medicationMemberFile);
}
}
medication.setMedicationMemberFile(list);
medication.setMemberId(memberId);
String result ="";
String resultDataRecord = SOAJsonClient.sendMsgToOtc(OtcJsonCodeRelation.JsonAssignedDetailsTasksService_setAddMedication,JSON.toJSONString(medication) );
JSONObject objectRecord = JSONObject.fromObject(resultDataRecord);
String objectstate=String.valueOf(objectRecord.get("state"));
if(objectstate.trim().length() >0 && objectstate.equals("0")){
result ="true";
}
return result;
}
easyui SWFUpload的更多相关文章
- easyUI + swfupload 多附件上传功能
public void UPLOADFILED() { Date dt = new Date(System.currentTimeMillis()); SimpleDateFormat sdf = n ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(32)-swfupload多文件上传[附源码]
系列目录 文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示.这次我们演示利用swfupload多文件上传,项目上文件上传是比不可少的,大家 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)
开发工具:VS2015(2012以上)+SQL2008R2以上数据库 您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB 升级后界面效果如下: 任务调度系统界面 http: ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox
系列目录 https://yunpan.cn/cZVeSJ33XSHKZ 访问密码 0fc2 今天整合lightbox插件Fancybox1.3.4,发现1.3.4版本太老了.而目前easyui 1 ...
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统
开篇:从50开始系统已经由MVC4+EF5+UNITY2.X+Quartz 2.0+easyui 1.3.4无缝接入 MVC5+EF6+Unity4.x+Quartz 2.3 +easyui 1.4. ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用 我相信目前国内富文本编辑器中KindEditor 属于前 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(转)
开发工具:VS2015(2012以上)+SQL2008R2以上数据库 您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB 升级后界面效果如下: 日程管理 http://ww ...
- ASP.NET MVC下使用SWFUpload完成剪切头像功能
首先介绍SWFUpload组件 SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术 为WEB开发者提供了一个具有丰富功能继 ...
随机推荐
- Linux:课程安排、Linux简介、虚拟机安装、课前准备(常用设置和操作)
一.课程安排 1)Linux 的作用 商业服务器基本上都是 Linux: 开源软件都先支持 Linux: 大数据分析.机器学习首先选 Linux: 整个互联网地基靠Linux撑起来: Linux 系统 ...
- PhantomJS 一个隐形的浏览器
下载地址: http://phantomjs.org/download.html 使用方法: 下载压缩包解压出来找到phantomjs.exe 放到python的根目录下
- 字符编码py2,py3操作,SecureCRT的会话编码的设置
对之前的字符串类型和二进制类型(bytes类型),可以这样关联记忆,把字符串类型当作是Unicode,把bytes类型当作是GBK或者UTF-8或者是日文编码.这样字符串要转成二进制,那么就需要编码e ...
- ORACLE 存储过程解及表解锁和停止执行
查看进程: select * from v$process 根据存储过程名称查找是否被锁: select * FROM dba_ddl_locks where name =upper('sp_1'); ...
- Dev控件类似于ComBox的DropDownControl用法
dropDownButton1.DropDownControl= CreateDXPopupMenu(); private DXPopupMenu CreateDXPopupMenu() { DXPo ...
- Pandas:表计算与数据分析
目录 Pandas之Series Pandas之DataFrame 一.pandas简单介绍 1.pandas是一个强大的Python数据分析的工具包.2.pandas是基于NumPy构建的. 3.p ...
- java堆栈区别(个人理解)
java把内存分为2种,一种是堆内存,一种是栈内存. 堆内存:通过new关键字出来的对象放在堆内存中,堆内存可以动态的分配内存大小,垃圾回收器自动回收不再使用的数据,由于动态分配内存所以存取的速度较慢 ...
- 电商模式O2O、C2C、B2B、B2C
电商模式O2O.C2C.B2B.B2C o2o o2o 是 online to offline 分为四种运营模式 1.online to offline 是线上交易到线下消费体验 2.offline ...
- Idea的基本介绍
Idea的基本介绍 Idea一般是作为一个Java和Scala的开发工具来使用的,它的使用方法和Eclipse有一些不同,这里记录以下一些基本点. 1.创建项目 创建一个新项目的时候,用户必须选择一个 ...
- JAVA基础知识总结15(集合容器)
集合框架:用于存储数据的容器. 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合和数组的区别: 1: ...