zoukankan      html  css  js  c++  java
  • 菜单+文件一起上传接口

    后端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=" 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=" 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=" 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=" 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=" 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=" 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=" 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=" 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>

  • 相关阅读:
    JAVA字符串格式化-String.format()的使用
    分布式文件系统MFS(moosefs)实现存储共享(第二版)
    iOS 动画学习
    复制对象(一)copy和mutableCopy方法
    iOS-获取当前网页的 url 和 title 和 html
    排序算法 c实现
    常用正则表达式
    iOS-获取的NSDate date时间与实际相差8个小时解决方案
    网络爬虫基本原理(二)
    网络爬虫基本原理(一)
  • 原文地址:https://www.cnblogs.com/Darkqueen/p/9087011.html
Copyright © 2011-2022 走看看