FlexPaperViewer跨服务器跨域访问swf不显示问题

做在线预览办公文档时,遇到了使用flexpaper访问文件服务器swf不显示问题。

假想1:

swf文件有问题?

实验1:

直接访问swf文件在文件服务器的地址,浏览器可以正常访问,但是放在flexpaper插件中就无法显示。

实验2:

官网自带swf文件地址,可以显示。

实验3:

把文件服务器上的swf文件copy至本地,结果可以显示。

结论:文件没有问题。

假想2:不能访问外部服务器的文件?

上网查资料,说是跨域问题解决方案如下:

在远程服务器根目录下新建一个文件名为"crossdomain.xml"的文件,这是关于跨域策略文件

文件内容:
<?xml version="1.0"?>
<!-- http://www.aeroflash.org/crossdomain.xml -->
<cross-domain-policy>
   <allow-access-from domain="*" />
</cross-domain-policy>

淘宝的:http://www.taobao.com/crossdomain.xml

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<allow-access-from domain="*.taobao.com" />
<allow-access-from domain="*.taobao.net" />
<allow-access-from domain="*.taobaocdn.com" />
<allow-access-from domain="*.allyes.com" />
</cross-domain-policy>

这样服务器上的文件就可以被任何域名来解析了,跨域策略文件可以根据自己的网络环境来设置,但是有些时候返回的内容特别慢,我在本机上测试花了四十秒左右的样子。

结果:一样显示不出来。

然后就一直查资料,终于在某个论坛看到了解决方案,还是网友给力啊

解决方案: 把flexpaper插件的FlexPaperViewer.swf文件放置在文件服务器可以访问的地方,然后在页面上引用外部服务器的这个文件

var file = "https://c4i-file001.citicsf.com:8001/Uploads/TempFolder/201711/10/3454d0b2-1115-483b-87e0-9458002cff62.swf";
var fp = new FlexPaperViewer(     
                         'https://c4i-file001.citicsf.com:8001/FlexPaper/FlexPaperViewer',  
                         'viewerPlaceHolder', 
                         { 
                            config : 
                            {  
                               SwfFile : escape(file),  
                               Scale : 0.6,   
                               ZoomTransition : 'easeOut',  
                               ZoomTime : 0.5,  
                               ZoomInterval : 0.2,  
                               FitPageOnLoad : true,  
                               FitWidthOnLoad : false,  
                               PrintEnabled : true,  
                               FullScreenAsMaxWindow : false,  
                               ProgressiveLoading : true,  
                               MinZoomSize : 0.2,  
                               MaxZoomSize : 5,  
                               SearchMatchAll : false,  
                               InitViewMode : 'Portrait',  
                                 
                               ViewModeToolsVisible : true,  
                               ZoomToolsVisible : true,  
                               NavToolsVisible : true,  
                               CursorToolsVisible : true,  
                               SearchToolsVisible : true,  
                                
                               localeChain: 'zh_CN'  
                            }
                        }); 

参考资源:

http://blog.csdn.net/yu452148611/article/details/46424381

http://blog.csdn.net/sinat_25926481/article/details/51924412

PDFViewer案例 链接: https://pan.baidu.com/s/1boEIdHX 密码: wncq

原文地址:https://www.cnblogs.com/dianli_jingjing/p/8005625.html