菜单+文件一起上传接口

后端java代码:

private static final String C_ACTION_UPLOAD_FILE = "mswcm_document_library_upload_file";
/**
* 上传
*/
@RequestMapping(value = "/upload_file")
public void upload_file(HttpServletRequest request,HttpServletResponse response)throws Exception {
CIPResponseMsg msg = new CIPResponseMsg();
CIPRuntimeOperator operator = CIPRuntime.getOperateSubject();
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
Map<String, String[]> parameterMap = request.getParameterMap();
WCM_document_libraryData libraryData = new WCM_document_libraryData();
WCM_document_libraryVO libraryVO = new WCM_document_libraryVO();
libraryVO.setFile_id(WCM_utils_SequenceUtils.file_id());
WCM_base_projectVO projectVO = new WCM_base_projectVO();
String project_id = request.getParameter("project_id");
String project_name = request.getParameter("project_name");
//文件存放路径
String path = CIPRuntimeConfigure.cip_temp_file_path+File.separator;
String tempPath="";
File dir = new File(path);
if(!dir.exists()){
dir.mkdirs();
}
try {
Iterator<FileItem> iter = FileUploadUtil.getFileItemIterator(request, path);
while (iter.hasNext()) {
FileItem item = iter.next();
String fieldName = item.getFieldName();
//ReflectUtil.invokeSetMethod4Field(libraryData, "", new String(item.get(), "UTF-8"));
//获取附件的大小
Long fileSize = item.getSize();
String fileName = item.getName();
//判断属性是不是普通的表单类型
if (!item.isFormField() && !"".equals(fileName)) {
//设置服务器附件的id(随机数)
WCM_document_attachmentVO attachmentVO = new WCM_document_attachmentVO();
Long attach_id = WCM_utils_SequenceUtils.nextId();
attachmentVO.setAttach_id(String.valueOf(attach_id));
//libraryVO.setAttach_id(String.valueOf(attach_id));
//判断该附件格式是否符合条件
String suffix = fileName.substring(fileName.lastIndexOf("."));
if(".doc".equalsIgnoreCase(suffix) || ".docx".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("doc");
}else if(".jpg".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("jpg");
}else if(".xls".equalsIgnoreCase(suffix) || ".xlsx".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("xls");
}else if(".png".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("png");
}else if(".zip".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("zip");
}else if(".rar".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("rar");
}else if(".txt".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("txt");
}else if(".pdf".equalsIgnoreCase(suffix)){
attachmentVO.setAttach_type("pdf");
}else {
msg.errorCode = 100005;
msg.msg = "附件格式输入有错,请重新输入!(支持doc、docx、jpg、xls、png、zip、rar、pdf、txt)";
responseMsg(response,msg);
return ;
}
if(fileSize> 10485760){
msg.errorCode = 100006;
msg.msg = fieldName+"上传图片不得大于10M!";
responseMsg(response,msg);
return ;
}
//设置保存路径
String serverpath = path+"\\"+attachmentVO.getAttach_id()+"."+attachmentVO.getAttach_type();
File file = new File(serverpath);
item.write(file);
//主表和附件表的关联id,必须获取,两个表菜而已同时添加
attachmentVO.setFile_id(libraryVO.getFile_id());
attachmentVO.setUpload_man(operator.getSubject_name());
attachmentVO.setUpload_time(operator.getOperate_tm());
attachmentVO.setAttach_title(fileName);
attachmentVO.setAttach_len(String.valueOf(fileSize));
attachmentVO.setAttach_path(serverpath);
//根据设置序列号id查询库里有没有这个id,如果有显示附件不存在,新增不了,没有的话。去新增,
/*WCM_document_attachmentVO oldPo= attaService.getData(new Object[]{attachmentVO.getAttach_id()});
if(null==oldPo){*/
attaService.addData(attachmentVO, operator);
// }
//System.out.println("该附件不存在!");
}else {
//表单内除附件外其他表的字段获取(通过映射获取页面实体值id--name)
ReflectUtil.invokeSetMethod4Field(libraryData, fieldName, new String(item.get(), "UTF-8"));
}
}
libraryVO.setCategory(libraryData.getCategory());
libraryVO.setFile_summary(libraryData.getFile_summary());
libraryVO.setFile_keyword(libraryData.getFile_keyword());
libraryVO.setFile_number(libraryData.getFile_number());
libraryVO.setFile_star(libraryData.getFile_star());
libraryVO.setFile_type(libraryData.getFile_type());
libraryVO.setProject_id(project_id);
libraryVO.setProject_name(project_name);
dataService.addData(libraryVO,CIPRuntime.getOperateSubject());
projectVO.setProject_id(project_id);
projectVO.setProject_name(libraryData.getProject_name());
projectService.addData(projectVO,CIPRuntime.getOperateSubject());
msg.errorCode = 0;
msg.msg = "操作成功";
responseMsg(response,msg);
return ;
}catch (CIPServiceException e) {
CIPErrorCode error = e.getErrorCode();
msg.errorCode = error.code;
msg.msg = error.name;
responseMsg(response,msg);
return ;
} catch (CIPDaoException e) {
CIPErrorCode error = e.getErrorCode();
msg.errorCode = error.code;
msg.msg = error.name;
responseMsg(response,msg);
return ;
} catch (CIPRuntimeException e) {
CIPErrorCode error = e.getErrorCode();
msg.errorCode = error.code;
msg.msg = error.name;
responseMsg(response,msg);
return ;
}
}

前端代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css"
href="../../js/jquery-easyui/themes/orange/easyui.css" />
<link rel="stylesheet" type="text/css"
href="../../js/jquery-easyui/themes/icon.css" />
<link rel="stylesheet" type="text/css" href="../../css/common.css" />
<link rel="stylesheet" type="text/css" href="../../css/button.css" />
<script type="text/javascript"
src="../../js/jquery-easyui/jquery.min.js"></script>
<script type="text/javascript"
src="../../js/jquery-easyui/jquery.easyui.min.js"></script>
<script type="text/javascript"
src="../../js/jquery-easyui/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="../../js/validate.js"></script>
<script type="text/javascript" src="../../js/jcdf-1.0.js"></script>
<script type="text/javascript" src="../../js/json2.js"></script>
<script type="text/javascript" src="../../js/jcdf-index-1.0.js"></script>
<script type="text/javascript" src="../../js/jcdf-contants-1.0.js"></script>
<script type="text/javascript" src="../../js/ajaxfileupload.js"></script>
<script type="text/javascript" src="../../js/checkFrom.js"></script>
<style type="text/css">
.td_title {
word-break: keep-all;
white-space: nowrap;
}
</style>
<script type="text/javascript">
var project_id ='';
var project_name ='';
var objectName = '上传文件 ';
//修改---加载--创新的项目
var formTemplate = '#wcm_document_library_form';
//创建新项目add
var uploadFile = '/wcm/actions/document_library/upload_file.do?actionId=mswcm_document_library_upload_file';
//根据文件id
var getDataUrl = "/wcm/actions/document_library/getDataName.do?actionId=mswcm_document_library_getDataName";
//var pageId = 'wcm_base_project_form';
var pageId = 'mswcm_upload_file_form';
var appId = '/wcm/';

var titleUrl = "/wcm/actions/base_project/titleSearch.do?actionId= &searchValue=";
$(function(){
init();
loadCombobox();      //忘记为什么加,第二次试着注调
//保存按钮单击事件
$("#btn_save").bind("click", function() {
submitData();
});
//取消按钮关闭表单
$("#btn_cancel").bind("click", function() {
$$.closeJcdfDialog();
});
});

function init(){
file_id=$$.QueryString("file_id");       //修改id
loadEditData();
};

function loadEditData(){
var jsonData = $$.serializeToJson(formTemplate);
//$$.openProcessingDialog();
var jsonData = { 
"file_id":file_id               //修改传过来的id
};
$.ajax({
type: "POST",
url: getDataUrl,
dataType:"json",
contentType: "application/json",
data: JSON.stringify(jsonData),
success: function(oData){
$$.closeProcessingDialog();
if (oData!=null && oData.errorCode == 0) {
editHistoryData = oData.data;
$(formTemplate).form('load', editHistoryData);
} else {
$$.showJcdfMessager('提示消息',oData.msg,'warning');
}
}
});
}

//通过id找到name(id模糊找name的接口,调用了另一个类的接口用,这边现成用)
function loadCombobox(){

$("#project_id").combobox({
url:titleUrl,
valueField:'project_id',          //实际值
textField:'project_name'           //文本框值
});

}


function submitData(){

var project_id=$("#project_name").combobox('getValues');      //获取表单实际值(getValues)我们通过id获取的name
var project_name=$("#project_name").combobox('getText');      //获取表单下拉框或者文本框的值(getText)我们需要展示的是name
alert(project_name);

//通过表单提交数据(form)
$('#wcm_document_library_form').form('submit', {

//上传路径+前端传输过去的变量(id)和参数(name)因为是参数。所以要加 ‘ 单引号 ’ 在一起拼接
// url:"/wcm/actions/document_library/upload_file.do?actionId=mswcm_document_library_upload_file&project_id="+project_id'&project_name='+project_name,    

//单纯穿id   ----  上传路径+前端传输过去的变量(id)
url:"/wcm/actions/document_library/upload_file.do?actionId=mswcm_document_library_upload_file&project_id="+project_id,
onSubmit: function(){

//表单校验
if($("#wcm_document_library_form").form("validate"))
return true
else
return false;
},
success:function(oData){
var data = jQuery.parseJSON(oData); //解析
if (data && data.errorCode==0) {
$$.showJcdfMessager('提示消息', '操作成功', 'info');
$$.closeJcdfDialog();
$$.refreshJcdfDatagrid(listId);
} else {
$$.showJcdfMessager('提示消息', data.msg, 'warning');
$$.closeJcdfDialog();
}
}
});
}

function importData(id_task_id,fValue){
var urlGet ="/wcm/actions/manager/addAttachment.do?actionId=add_attachment&task_id="+id_task_id;
if(fValue!="")
{
$.ajaxFileUpload({
url : urlGet, //用于文件上传的服务器端请求地址
secureuri : false, //是否需要安全协议,一般设置为false
fileElementId : 'file', //文件上传域的ID
/* data: { //加入的文本参数
"task_id": task_id
}, //附加参数,json格式 */
dataType : 'text', //返回值类型 一般设置为json
contentType : "application/json",
async: false,
success: function (data,status) //服务器成功响应处理函数
{
data = jQuery.parseJSON(jQuery(data).text());
if (status=="success" && data.errorCode == 0) {
}
else {
$$.showJcdfMessager('提示消息', data.msg, 'warning');
$$.closeJcdfDialog();
}
}
});
}
};
/**
*@funtion 默认开始日期是当前时间
*/

 //不是上传代码
$(function(){
var curr_time = new Date();
var strDate = curr_time.getFullYear()+"-";
strDate += curr_time.getMonth()+1+"-";
strDate += curr_time.getDate()+" ";
strDate += curr_time.getHours()+":";
strDate += curr_time.getMinutes()+":";
strDate += curr_time.getSeconds()+"";
$("#sub_time").datetimebox("setValue", strDate);
$("#project_time").datetimebox("setValue", strDate);
});

</script>
</head>
<body>
<div class="easyui-panel" data-options="region:'north', split:false, border:false,fit:true" style="padding: 0px 0;">
<br />
<form id="wcm_document_library_form" style="height: 1050px; margin-left: 80px"
method="post" enctype="multipart/form-data">
<table style="width: 1000px; border-collapse: separate; border-spacing: 10px;" align="left">
<tr>
<!-- <input type="hidden" id ="file_id" name ="file_id"/> -->
<td class="right"><label for="file_summary">文件摘要:</label></td>
<td class="left" colspan="2"><textarea type="text"
id="file_summary" name="file_summary"
style="width: 400px; height: 70px" class="txt_input"
data-options="required:true"></textarea></td>
</tr>
<tr>
<td class="right"><label for="file_keyword">文件关键字:</label></td>
<td class="left" colspan="2"><textarea type="text"
id="file_keyword" name="file_keyword"
style="width: 400px; height: 70px" class="txt_input"
data-options="required:false"></textarea></td>
</tr>

<tr>
<td class="right"><label for=file_number>文档编号:</label></td>
<td class="left" colspan="2"><input type="text"
id="file_number" name="file_number"
style="width: 200px; height: 26px" class="txt_input"
ddata-options="required:false" /></td>
<td class="right"><label for="file_star">文件星级:</label></td>
<td class="left" colspan="2"><select class="easyui-combobox"
id="file_star" name="file_star" editable="false"
style="width: 200px; height: 26px">
<option value="">---请选择---</option>
<option value="文件星级1">*</option>
<option value="文件星级2">**</option>
<option value="文件星级3">***</option>
<option value="文件星级4">****</option>
<option value="文件星级5">*****</option>
</select></td>
</tr>
<tr>
<td class="right"><label for="file_type">文件类别:</label></td>
<td class="left" colspan="2"><select class="easyui-combobox"
id="file_type" name="file_type" editable="false"
style="width: 200px; height: 26px">
<option value="">---请选择---</option>
<option value="kc">课程</option>
<option value="mb">模版</option>
<option value="xmjf">项目交付物</option>
<option value="zl">资料</option>
</select></td>
<td class="right"><label for="category">所属类别:</label></td>
<td class="left" colspan="2"><select class="easyui-combobox"
id="category" name="category" editable="false"
style="width: 200px; height: 26px">
<option value="">---请选择---</option>
<option value="xt">系统开发类</option>
<option value="rl">人力成本类</option>
<option value="cs">车线成本/时效类</option>
<option value="cd">场地建设类</option>
<option value="hy">会议筹办类</option>
<option value="sb">设备效率类</option>
<option value="cz">操作类</option>
<option value="cw">财务金融类</option>
<option value="wd">网点客户类</option>
<option value="ggmt">公关媒体类</option>
</select></td>
</tr>
<tr>
<td class="right"><label for="file">选择文件:</label></td>
<td class="left"><input id="file" type="file" name="file"
size="50" /><span style="color: red;">格式要求:doc/docx/xls/xlsx/jpg/png/zip/txt/rar</span>
</td>
</tr>
<tr>
<td class="right"><label for="project_id" >所属项目:</label></td>
<td class="left" colspan="2">
<input type="text"
id="project_name" name="project_name"
style="width: 400px; height: 26px" class="easyui-combobox"
data-options="valueField:'project_name', textField:'project_name'" />
</td>
</tr>
</table>
<div class="button-section">
<a id="btn_save" href="#" class="easyui-linkbutton" iconCls="icon-ok">确定</a>
<a id="btn_cancel" href="#" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
</div>
</form>
</div>
</body>
</html>

<script type="text/javascript">
// 项目名称模糊查询 ,通过id模糊查name的接口
var titleUrl = "/wcm/actions/base_project/titleSearch.do?actionId=wcm_base_project_titleSearch&searchValue=";
//projectTitleSearch("#project_name", "", titleUrl);
$(function() {


/*     

    $("#project_name").combobox({
prompt : '输入项目名称进行模糊查询',
onChange : function() {
var vv = $('#project_name').combobox('getValues', '');
var text = $('#project_name').combobox('getText', '');
projectTitleSearch(this, text, titleUrl);
}
});

      */

//需要的name和id互转,通过id实际值找到name

$('#project_name').combobox({
prompt : '输入空格或关键字后自动搜索',
url:titleUrl,
valueField : 'project_id',      //实际值
textField : 'project_name',    //文本值
filter: function(q, row){
var opts = $(this).combobox('options');
return row[opts.textField].indexOf(q) > -1;
},
loadFilter : function(oData) {
var data = oData.data;
return data;
}
});
});

</script>

猜你喜欢

转载自www.cnblogs.com/Darkqueen/p/9087011.html