zoukankan      html  css  js  c++  java
  • xml或其他附件下载到客户端

    //xml 
                    Document document=DocumentHelper.createDocument();
                    Element root=document.addElement("root");
    
    //。。。。。省略document的过程。。。。。
    
    //下载到指定目录
    OutputFormat format=OutputFormat.createPrettyPrint();
                    format.setEncoding("UTF-8");
                    XMLWriter writer=new XMLWriter(new FileOutputStream(new File("D://dzoa.xml")),format);
                    writer.write(document);
                    writer.close();
    
    //下载到客户端
    DownloadTool.doReady(response, "application/octet-stream", 0, "dzoa.xml");
                    XMLWriter writer=new XMLWriter(response.getOutputStream(), OutputFormat.createPrettyPrint());
                    writer.write(document);
             writer.close();
    
    //相关方法代码
      /**
         * @param mimeType 文件的mime-type,如为null或空字符串,就取multipart/form-data
         * @param filelen  文件长度,大于0表示真实长度,0或负值表示unknown
         * @param fileName 文件名称
         * @param inline   可选项,是inline还是attachment,默认false
         */
        public static void doReady(HttpServletResponse response, String mimeType, long filelen, String fileName, boolean... inline) {
            if (mimeType == null || mimeType.isEmpty()) mimeType = "multipart/form-data";
            fileName = rawEncode(fileName); // RFC 3986
    
            response.setCharacterEncoding("UTF-8");
            response.setContentType(mimeType);
            if (filelen > 0) response.setHeader("Content-Length", String.valueOf(filelen));
    
            // firefox: filename*=utf-8''
            // IE or chrome: filename= or filename*=utf-8''
            // Xunlei: filename= or filename*=utf-8''
            response.setHeader("Content-Disposition", ((inline.length > 0 && inline[0]) ? "inline" : "attachment") + "; filename="" + fileName + """ + "; filename*=utf-8''" + fileName);
        }


    ------------------------------------一般情况的下载附件可调用下列方法-------------------------

       /**
         * @param mimeType 文件的mime-type,如为null或空字符串,就取multipart/form-data
         * @param data     数据
         * @param fileName 文件名称
         * @param inline   可选项,是inline还是attachment,默认false
         */
        public static void download(HttpServletResponse response, String mimeType, byte[] data, String fileName, boolean... inline) {
            response.reset();
            doReady(response, mimeType, (long) data.length, fileName, inline);
    
            OutputStream os = null;
            try {
                os = response.getOutputStream();
                os.write(data);
                os.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                close(os);
            }
        }


    -----------------------------------如果客户端还是没有出来附件下载,检查一下代码---------------------------------------
     //数据导出 
         function gwExport(){
             top.$.fn._confirm("确认要导出数据吗?", function(i){
                 if(1 == i){
                     var cVal = "";
                     var cValStr=[];
                     $("#myTable td input[name=fileCheck]").each(function(){
                         if(this.checked){
                            cValStr.push($(this).val());
                         }
                     });
                     cVal=cValStr.join(",");
                     if(cVal==""){
                         top.$.fn._alert("请选择需要导出的公文。");
                         return;
                     }
    
                     //alert(cVal);
                     location.href = "${ctx}/oa/myflow/procinst/gwExport?" + $.param({"pInsIds": cVal});
                     /* $.post("${ctx}/oa/myflow/procinst/gwExport", {"pInsIds": cVal}, function(data){
                         top.$.fn._alert(data.info);
                         if(data.state==1){
                            // location.reload();
                         }
                     }); */
                 }
             });
         }
    
    
    
    
    
     
     
  • 相关阅读:
    Windows、Linux、ARM、Android、iOS全平台支持的RTMP推流组件EasyRTMPAndroid如何修改分辨率和码率
    高稳定性、低延时的网络全终端播放器H5播放器网页直播/点播播放器EasyPlayer.js播放flv格式视频显示跨域问题解决方案
    RTSP播放器网页web无插件直播流媒体音视频播放器EasyPlayerRTSP实现支持H265编码格式过程介绍
    简单、高效、易用的全平台(Windows/Linux/ARM/Android/iOS)web实现RTMP推送组件EasyRTMPAndroid如何开启悬浮窗
    模板学习实践一 accumulationtraits
    模板学习实践二 pointer
    黑客屏保 代码来自网络搜索 做了部分改动
    设计模式之模板模式 template
    CMAKE 教程前两章节学习
    cmake 及make 实践记录
  • 原文地址:https://www.cnblogs.com/skyislimit/p/5771830.html
Copyright © 2011-2022 走看看