解决kkFileView预览线上的office等文件时,报【连接url异常】错-sunziren

  1.问题:  

    在本地预览时,任何问题都没有。但是程序部署到线上后,除了图片可以正常预览,其他的文件,例如:doc\docx\xls\xlsx\pdf等这些类型的时候,直接提示连接url异常。

  2.现象分析及思考

    但是文件的url是可以下载的,我把传给预览接口的参数,就是文件的链接,直接拿到浏览器访问是可以正常下载的,但是为什么只有图片可以预览,其他文件却不行?

    经过我的检查,所有文件都是在线上存在同一个ftp文件夹里的,所以应该是线上环境限制了可以读取的文件类型,但是我找了半天,并没有找到在什么地方有这么个限制的配置。

    我想看看这个错是怎么报出来的,是哪一行代码出了问题。我根据提示的关键字,先把kkFileView这个项目下载到了本地(版本: 2.2.1),然后全局查找关键字【连接url异常】,终于找到了。

    

     就是这个DownloadUtils中的getInputStreamFromUrl方法报出来的,如下:

private InputStream getInputStreamFromUrl(String urlStr) {
        try {
            URL url = new URL(urlStr);
            URLConnection connection = url.openConnection();
            if (connection instanceof HttpURLConnection) {
                connection.setRequestProperty("Accept", "*/*");
                connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            }
            return connection.getInputStream();
        } catch (IOException e) {
            logger.warn("连接url异常:url:{}", urlStr);
            return null;
        }
    }

       我想看看网上其他人有没有碰到类似问题,一位名叫的兄弟于2019-02-18 15:19:37发布的帖子,引起了我注意:

      关于Server returned HTTP response code: 403 for URL

  3.解决

    我根据他的修改方式,把代码中的setRequesetProperty进行了更改,上面的方法变成了下面这样:

private InputStream getInputStreamFromUrl(String urlStr) {
        try {
            URL url = new URL(urlStr);
            URLConnection connection = url.openConnection();
            if (connection instanceof HttpURLConnection) {
                connection.setRequestProperty("Accept", "*/*");
                connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)");
            }
            return connection.getInputStream();
        } catch (IOException e) {
            logger.warn("连接url异常:url:{}", urlStr);
            return null;
        }
    }
    然后问题就解决了,office文件也可以正常预览了。
    哈哈。
    最后,十分感谢这位兄弟的帖子。

 

posted @ 2020-12-26 13:58  sunziren  阅读(7248)  评论(3编辑  收藏  举报