zoukankan      html  css  js  c++  java
  • 前端到后台的上传下载word文档

    -------------------上传 --------------------

    <p onclick="javascript:showUploadProjectDocDialog();
    上传
    </p>

    //对话框-上传项目文档
    function showUploadProjectDocDialog(){
    //项目编码
    $('#hidden_project_code').val(currentProjectCode);
    $('#dialog_upload_project_docs').dialog(
    {
    position:[400,100],
    700,
    height: 200,
    modal: true,
    resizable: false,
    closeOnEscape:true,
    title:"上传文档"
    }
    );
    }
    function closeUploadProjectDocDialog(){
    $('#dialog_upload_project_docs').dialog("close");
    }

    <!-- 弹出层-上传项目文档 -->
    <!--
    1-校准证书, 2-验证方案(原始), 3-验证方案(校验),4-验证报告(原始), 5-验证报告(校验),
    11-校准证书pdf , 12-验证方案pdf, 13-验证报告pdf,14-原始数据pdf
    -->
    <div id="dialog_upload_project_docs" style="display:none;" >
    <form id="form_upload_project_docs" action="<%=basePath%>/upload/uploadProjectDocs.api" enctype="multipart/form-data" method="post">
    <input type="hidden" name="project_code" id="hidden_project_code"/>
    <table class="formtable">
    <tr>
    <td>文档类型</td>
    <td align="left">
    <select name="doc_type">
    <option value="1">word-校准证书</option>
    <option value="3">word-验证方案</option>
    <option value="5">word-验证报告</option>

    <option value="11">pdf-校准证书(用户可下载)</option>
    <option value="12">pdf-验证方案(用户可下载)</option>
    <option value="13">pdf-验证报告(用户可下载)</option>
    <option value="14">pdf-原始数据(用户可下载)</option>
    </select>
    </td>
    </tr>

    <tr>
    <td>选择文件</td>
    <td><input type="file" name="file"/></td>
    </tr>
    <tr>
    <td colspan="2" style="text-align:center;">
    <input type="button" value="上传" onclick="uploadProjectDoc();"/>
    </td>
    </tr>
    </table>
    </form>
    </div>

    //上传项目文档
    function uploadProjectDoc(){
    var _form = $('#form_upload_project_docs');
    var options = {
    dataType : "json",
    success: function(jsonResult) {
    if(jsonResult.code!='0'){
    alert('上传失败,请重新尝试!');
    return false;
    }
    alert('文档上传完毕!');
    closeUploadProjectDocDialog();
    //根据projectCode获取项目,刷新文档列表
    findProjectFromRedis(currentProjectCode);
    },
    error: function(result) {
    alert('上传失败,请重新尝试!');
    }
    };
    _form.ajaxSubmit(options); // <script type="text/javascript" src="<%=basePath%>/js/lib/jquery-form.js"></script> <!-- 用于ajaxSubmit 不跳转并提交表单-->
    return false;
    }

    //java方法 - 获取参数 取出原始名 和 创建文件路径 上传
    @RequestMapping("uploadCheckOutDocs")
    public void uploadCheckOutDocs(HttpServletRequest request,HttpServletResponse response,MultipartFile file,ApiJsonResult result) throws Exception {
    //预创建json结果
    ApiJsonResult apiJsonResult = new ApiJsonResult();
    apiJsonResult.setCode(StatusCodeEnum.SUCCESS.getCode());
    apiJsonResult.setMsg(StatusCodeEnum.SUCCESS.getDesc());

    try {
    //请求参数
    String id = request.getParameter("hidden_inboundLot_id");
    String inboundId = request.getParameter("hidden_inbound_id");

    ScmInboundLot scmInboundLot = scmInboundLotService.findScmInboundLotById(id);
    ScmGoods scmdGoods = scmGoodsService.findScmGoodsById(scmInboundLot.getGoodsId());

    String path = request.getSession().getServletContext().getRealPath( "/upload/doc/" ); //tomcat路径
    //String path = ApiConstants.PORTAL_PIC_DIR;
    File pathFile = new File(path);
    if (!pathFile.exists() && !pathFile.isDirectory())
    {
    pathFile.mkdir();
    }
    //文件
    String dateStr = DateUtil.fmtDate( new Date(), "yyyyMMddHHmmss");
    String originalName = file.getOriginalFilename(); //原始文件名
    String extName = originalName.substring( originalName.lastIndexOf(".") ); //文件后缀 -- doc docx
    String docName = scmdGoods.getName()+"_"+scmInboundLot.getLotCode()+"_" + inboundId + "农残检验记录" + dateStr + extName; //上传保存文件名
    File savePath = new File(path + File.separator + docName);
    //文档中文名
    //String docCnName = project.getProjectName();
    // 转存文件
    file.transferTo(savePath );

    //入库单明细业务处理
    /*projectService.updateValidateProjectByCode(project);*/

    } catch (Exception e) {
    e.printStackTrace();
    apiJsonResult.setCode(StatusCodeEnum.SYSPARAMERROR_CALLAPI_ERROR.getCode());
    apiJsonResult.setMsg(StatusCodeEnum.SYSPARAMERROR_CALLAPI_ERROR.getDesc());
    }
    //输出api结果
    JsonWebPrintUtils.printApiResult(request, response, apiJsonResult);
    }

    ---------------------------------下载 ----------------------------------------------------------------
    <!-- 导出项目文档 -->
    <form name="form1" id="form1" action="<%=basePath%>/down/downProjectDoc.api" method="post">
    <input type="hidden" name="param1" id="hidden_param1"/>
    </form>

    //导出数据
    function downProjectDoc(docType,docName,docCnName){
    var requestParam = {}; //整体请求参数
    var sysParam = {}; //系统参数
    var busParam = {}; //业务参数
    requestParam.sysParam = sysParam; //系统参数(api要求的必须传递的参数)
    requestParam.busParam = busParam; //业务参数
    busParam.projectCode=currentProjectCode;
    busParam.docType=docType;
    busParam.docName=docName;
    busParam.docCnName=docCnName;

    //整体请求参数转成json串
    var requestParamJsonObject = JSON.stringify(requestParam);
    //调用controller
    $('#hidden_param1').val( requestParamJsonObject );
    $('#form1').submit();
    }


    /**
    * 下载项目文档
    */
    @RequestMapping("downCheckOutDoc")
    public void downCheckOutDoc(HttpServletRequest request,HttpServletResponse response,String param1) throws Exception {
    //获取请求参数
    HttpRequestParamVo httpRequestParamVo = JsonConverter.json2Obj(param1, HttpRequestParamVo.class);
    JSONObject busParam = httpRequestParamVo.getBusParam();
    Integer docType = busParam.getInteger("docType");
    String docName = busParam.getString("docName");
    String docCnName = busParam.getString("docCnName");
    String projectCode = busParam.getString("projectCode");

    if(docType.intValue()>10){ //PDF
    response.setContentType(Constants.CONTENT_TYPE_PDF);
    }else{ //WORD
    response.setContentType(Constants.CONTENT_TYPE_WORD);
    }
    response.setCharacterEncoding("UTF-8");
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
    OutputStream out = null;
    try {
    out = response.getOutputStream();// 取得输出流
    response.reset();// 清空输出流
    String filename = docCnName + docName.substring( docName.lastIndexOf(".") );
    //filename = new String(filename.getBytes("utf-8"),"iso8859-1");
    filename = new String(filename.getBytes("gb2312"),"iso8859-1");
    response.setHeader("Content-disposition", "attachment; filename=" + filename);// 设定输出文件头
    //输出文件
    String savePath = request.getRealPath("doc") + File.separator + projectCode + File.separator + docName;
    File file = new File(savePath);
    FileInputStream fis = new FileInputStream(file);
    BufferedInputStream bis = new BufferedInputStream(fis);
    byte[] array = new byte[1024];
    int len =0;
    while( (len=bis.read(array))>0 ){
    out.write(array, 0, len);
    out.flush();
    }
    bis.close();
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (out != null) {
    try {
    out.close();
    } catch (Exception e2) {
    e2.printStackTrace();
    }
    }
    }

    }

  • 相关阅读:
    个人总结
    4号团队-团队任务3:每日立会(2018-12-07)
    4号团队-团队任务3:每日立会(2018-12-06)
    4号团队-团队任务3:每日立会(2018-12-05)
    团队任务3
    课后作业2
    课后作业1
    相识两年的自我介绍
    Android模拟器
    用户
  • 原文地址:https://www.cnblogs.com/missmeng/p/12188444.html
Copyright © 2011-2022 走看看