起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10287|回复: 16

[结贴] (引入pdfobject.js实现)pdf无法正常预览

[复制链接]

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
发表于 2016-6-2 13:26:44 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
本帖最后由 yangjianchao1 于 2016-6-2 13:30 编辑

单击“导入明细”后无法正常预览pdf,已经上传成功,因为单击右键可以另存

11.png
111.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-6-2 13:56:25 | 显示全部楼层
这个可以在一个标准的html页面中测试看看什么效果
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:05:52 | 显示全部楼层
标准页面是没有问题的,能否看一下我的代码
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:20:18 | 显示全部楼层
<xhtml:div id="div1" class="xui-container" style="position:absolute;position:absolute;width:210px;height:31px;position:absolute;position:absolute;top:7px;left:20px;">
   <xhtml:form enctype="multipart/form-data" name="f" id="div-form" action="/UI/system/components/excel/import/upload.j" method="post" target="div-iframe" style="margin:0;">
    <xhtml:input name="process" type="hidden" value="/GCERP/ProjectManage/process/constructReportManage/constructReportManageProcess" id="input1"></xhtml:input>
    <xhtml:input name="activity" type="hidden" value="mainActivity" id="input2"></xhtml:input>
    <xhtml:input name="action" type="hidden" value="uploadP_constructReportBudgetDetailFileAction" id="input3"></xhtml:input>
    <xhtml:input name="uploadFile" type="file" style="margin-top:4;width:100%;height:20px;vertical-align:middle;line-height:18px;" id="input4"></xhtml:input>
    <xhtml:input name="str" type="hidden" value="" id="input5"></xhtml:input></xhtml:form>
   <xhtml:iframe id="div-iframe" name="div-iframe" style="display:none" onload="mainActivity.afterUploadFileDetail(this);"></xhtml:iframe>
   </xhtml:div>
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:42:55 | 显示全部楼层
mainActivity.triggerDetailClick = function(event){
        var s = justep.Request.convertURL("/UI/system/components/excel/import/upload.j");
         var f = document.getElementById('div-form');
         if(!!f && f.uploadFile.value == ''){
                 alert("请选择上传的文件!");
                 return;
         }
         var clientfilePath = f.uploadFile.value;
         var fileArray=clientfilePath.split("\\");
        // var fileType=fileArray[fileArray.length-1].toLowerCase().split(".");   
        // var fileName=fileArray[fileArray.length-1];
        // alert(fileType);
        var dataMaster = justep.xbl("dataMaster");
        fileName = dataMaster.getCurrentRowId();
         f.str.value = encodeURI(fileName);
         //在SP2版本后,form的action属性需要在js中赋值
         if(!justep.Browser.IE6 && !justep.Browser.IE7)
                 f.setAttribute('action', s);
         else
                 f.attributes['action'].value = s;
         f.submit();  
};
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:43:50 | 显示全部楼层
mainActivity.afterUploadFileDetail= function(iframe){
         if (iframe && iframe.contentWindow && iframe.contentWindow.document) {
                var doc = (!justep.Browser.IE||justep.Browser.IE9)?iframe.contentWindow.document:iframe.contentWindow.document.XMLDocument;
                if(doc){
                        var data = justep.Request.getData(doc);
                        var flag = justep.Request.getFlag(doc);
                }
               
                if (data && flag) {
                        var returnData;
                    if(justep.Browser.IE8) {
                             //alert("action返回值:"+data.text);
                         returnData = data.text;
                    }
                       
                    else{
                             //alert("action返回值:"+data.textContent);
                         returnData = data.textContent;
                    }
                    
                   var id = returnData.split("/")[0];
                       var detailFile = returnData.split("/")[1];
//                       alert(id);
//                       alert(detailFile);

                       var url = justep.Request.convertURL("/UI/system/components/excel/export/download.j"+"?action=downloadP_constructReportBudgetDetailAction&constructReportBudgetId=" + id+"&downloadFilename=" +encodeURI(detailFile)+"&$downloadFilename=" +encodeURI(detailFile+".pdf"));
                       url = justep.Request.setBizParams(url);
                       var mynode = document.getElementById("e1");
                       PDFObject.embed(url, mynode);
                       var options = {
                                                pdfOpenParams: {
                                                        pagemode: "thumbs",
                                                        navpanes: 0,
                                                        toolbar: 0,
                                                        statusbar: 0,
                                                        view: "FitV"
                                                }
                                        };
                       var myPDF = PDFObject.embed(url, mynode,options);
                      
                       var dataMaster = justep.xbl("dataMaster");
                       dataMaster.setValue("detailFile",detailFile);
               }
            
     }
       
       

};
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:45:42 | 显示全部楼层
/**
         * 上传报建取费明细文件
         * @param uploadFile
         * @param str
         */
        public static String uploadP_constructReportBudgetDetailFile(InputStream uploadFile,String str){
                String subName = "constructReportBudget";
                SimpleDateFormat sdftime = new SimpleDateFormat("yyyyMMddHHmmssS");
                Calendar cal = Calendar.getInstance();
                Date systemDate = cal.getTime();  // 取得系统日期
                String systemDateTime = sdftime.format(systemDate);
                String fileName = systemDateTime;
                subName = subName+"/"+str;
                uploadFile_(uploadFile,fileName,subName);
                return str+"/"+systemDateTime;
        }
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:46:10 | 显示全部楼层
/**
         * 上传文件
         * @param uploadFile
         * @param str
         * @param subName
         * @return
         */
        private static String uploadFile_(InputStream uploadFile, String str, String subName) {
                File fileDir = new File(getFileDir()+ "/"+ subName );
                if(!fileDir.exists()){
                        fileDir.mkdirs();
                }
                File file = new File(getFileDir()+ "/"+ subName + "/" + str + ".tmp");
               
               
                if (file.exists())
            file.delete();
                FileOutputStream output;
                try{
                        output = new FileOutputStream(file);
                        try{
                                byte[] bs = new byte[1024*4];
                                int i = -1;
                                while ((i = uploadFile.read(bs)) != -1) {
                                        output.write(bs, 0, i);
                                }
                                output.flush();
                                //System.out.println("文件名:" + file.getName());
                        }finally{
                                output.close();
                        }
                       
                }catch(Exception e){
                         throw new RuntimeException("上传失败!", e);
                }
                return str;
        }
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:48:34 | 显示全部楼层
/**
         * 下载报建取费明细文件
         * @param constructReportBudgetId
         * @param downloadFilename
         */
        public static Object downloadP_constructReportBudgetDetail(String constructReportBudgetId,String downloadFilename){
                System.out.println("constructReportBudgetId:"+constructReportBudgetId);
                System.out.println("downloadFilename:"+downloadFilename);
                String subName = "constructReportBudget";
                return downloadFile_(constructReportBudgetId,downloadFilename,subName);
        }
回复 支持 反对

使用道具 举报

17

主题

61

帖子

115

积分

初级会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2016-6-2 14:48:51 | 显示全部楼层
private static Object downloadFile_(String fileId, String downloadFilename, String subName) {
                FileInputStream fis = null;
                File file = new File(getFileDir()+ "/"+ subName + "/" + fileId +"/"+downloadFilename+ ".tmp");
                try{
                        fis = new FileInputStream(file);
                }catch (Exception e) {
                        throw new RuntimeException("获取文件失败!", e);
                }
                return fis;
        }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-2 12:18 , Processed in 0.067954 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表