精华内容
下载资源
问答
  • 项目通过java接口来下载文件,发现下载office文件时,打开都不正常,比如下载office文件打开会报“word在 XX.docx发现无法读取内容。是否恢复此文档的内容”。但如果通过nginx映射来下载,可以正常打开。 解决...

    问题描述:

    项目通过java接口来下载文件,发现下载office文件时,打开都不正常,比如下载office文件打开会报“word在 XX.docx 发现无法读取的内容。是否恢复此文档的内容”。但如果通过nginx映射来下载,可以正常打开。

    解决方法:

    研究后发现,是因为没有设置Content-Type,其实每种office文件都有对应的Content-Type。可参考:https://www.jianshu.com/p/4b09c260f9b2?from=groupmessage

    修改后的代码如下:

        private final static Map<String, String> CONTENT_TYPE_MAP = new HashMap<>();
    
        static {
            CONTENT_TYPE_MAP.put("doc", "application/msword");
            CONTENT_TYPE_MAP.put("dot", "application/msword");
            CONTENT_TYPE_MAP.put("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
            CONTENT_TYPE_MAP.put("dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template");
            CONTENT_TYPE_MAP.put("docm", "application/vnd.ms-word.document.macroEnabled.12");
            CONTENT_TYPE_MAP.put("dotm", "application/vnd.ms-word.template.macroEnabled.12");
            CONTENT_TYPE_MAP.put("xls", "application/vnd.ms-excel");
            CONTENT_TYPE_MAP.put("xlt", "application/vnd.ms-excel");
            CONTENT_TYPE_MAP.put("xla", "application/vnd.ms-excel");
            CONTENT_TYPE_MAP.put("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            CONTENT_TYPE_MAP.put("xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template");
            CONTENT_TYPE_MAP.put("xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12");
            CONTENT_TYPE_MAP.put("xltm", "application/vnd.ms-excel.template.macroEnabled.12");
            CONTENT_TYPE_MAP.put("xlam", "application/vnd.ms-excel.addin.macroEnabled.12");
            CONTENT_TYPE_MAP.put("xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12");
            CONTENT_TYPE_MAP.put("ppt", "application/vnd.ms-powerpoint");
            CONTENT_TYPE_MAP.put("pot", "application/vnd.ms-powerpoint");
            CONTENT_TYPE_MAP.put("pps", "application/vnd.ms-powerpoint");
            CONTENT_TYPE_MAP.put("ppa", "application/vnd.ms-powerpoint");
            CONTENT_TYPE_MAP.put("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
            CONTENT_TYPE_MAP.put("potx", "application/vnd.openxmlformats-officedocument.presentationml.template");
            CONTENT_TYPE_MAP.put("ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow");
            CONTENT_TYPE_MAP.put("ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12");
            CONTENT_TYPE_MAP.put("pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12");
            CONTENT_TYPE_MAP.put("potm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12");
            CONTENT_TYPE_MAP.put("ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12");
        }
    
    
        
        @ApiOperation(value = "文件下载接口", httpMethod = "GET", notes = "文件下载接口")
        @RequestMapping("/downloadFiles/{md5}.{format}")
        @ResponseBody
        public AjaxResult downloadFiles(HttpServletResponse response,
            @PathVariable String md5, @PathVariable String format){
            File file = new File(this.getFilePath()+md5+".data");
            if(!file.exists()) {
                return getResult(1, "文件不存在");
            }
            try(
                FileInputStream fileInput = new FileInputStream(file);
                BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);
            ) {
                response.setHeader("Accept-Ranges", "bytes");
                response.setHeader("Content-Length", file.length()+"");
                response.setHeader("Content-Type", CONTENT_TYPE_MAP.get(format));
                response.setDateHeader("Last-Modified", file.lastModified());
                response.setCharacterEncoding(null); // 设置为null,否则Content-Type会带上charset=UTF-8
                byte[] buffer = new byte[1024];
                OutputStream os = response.getOutputStream();
                int len = 0;
                while ((len = bufferedInput.read(buffer)) > 0) {
                    os.write(buffer, 0, len);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return getResult(0, null);
        }

     

    展开全文
  • word 无法读取文档 文档可能损坏

    千次阅读 2014-01-26 20:33:57
    经常会出现word 不能打开提示“word 无法读取文档 文档可能损坏。”我们大部分情况会以为这个文件真的损坏不能用了,其实不然。这可能是由于我们在保存文档时保存了一些无用的东西,或者格式错误造成的,我今天就...

         经常会出现word 不能打开提示“word 无法读取文档  文档可能损坏。”我们大部分情况会以为这个文件真的损坏不能用了,其实不然。这可能是由于我们在保存文档时保存了一些无用的东西,或者格式错误造成的,我今天就遇到了这种情况。

        解决方法如下:

          打开并尝试修复,使用“文件”【打开一个好的word文档】中的“打开...”选择文档,然后浏览到损坏的文件,并在其上单击一次。不要选择对话框右下角的“打开”按钮打开文件,而应选择按钮右边的向下箭头,然后从列表中选择“打开并修复”。如果文件可被恢复,则它将打开并显示在文档工作区中。【在此过程中会提示一些文档中出现问题的地方,将其删除或修改即可】
           已安装了“恢复文本”转换器【需要下载的】,可在“打开”对话框中的“文件类型:”下拉列表(位于“取消”按钮的左侧)中找到它。它在下拉列表中显示为:“从任意文件中恢复文本(*.*)”。

    展开全文
  • 那么是不是说损坏的Word文档就没法恢复了呢?那也不一定,下面就让小编来给大家支招。 遇到这种情况,千万别着急,安装数据恢复软件——EasyRecovery就可以了。利用其深度数据恢复的功能特

    Word是一款专业的文字处理软件,被人们普遍应用于各个方面。我们可以用其来编辑、存储重要的信息,但是,如果没养成随时保存数据的喜欢,在遇到人为或断电等意外导致Word数据丢失损坏时,就会非常地头疼。那么是不是说损坏的Word文档就没法恢复了呢?那也不一定,下面就让小编来给大家支招。

    遇到这种情况,千万别着急,安装数据恢复软件——EasyRecovery就可以了。利用其深度数据恢复的功能特点,去解决误删除Word文档造成的数据丢失问题。

    EasyRecovery免费版获取地址http://wm.makeding.com/iclk/?zoneid=11873

    总的来说,要完成Word文档恢复,在EasyRecovery中,需要五个步骤,它们分别是“选择媒体类型”、“选择需要扫描的卷标”、“选择恢复场景”、“检查您的选项”和“正在扫 描、保存文件”,每一个步骤的操作方法都非常简单,极易上手,大家只要按照相应的文字提示进行操作即可。有一点需要说明,那就是在步骤3中,由于我们要恢复的是word文档,所以大家选择“恢复已删除的文件”即可,如下图所示。

    选择恢复场景
    图片:选择恢复场景

    有了EasyRecovery 的帮助,找到这些丢失的数据没问题!不过小编想提醒大家的是:数据丢失以后,尽量不要再操作丢失数据的那个盘,要立即使用恢复软件来恢复删除文件。

    EasyRecovery TM (易恢复中国)是由全球著名数据厂商Kroll Ontrack ® 出品的一款数据文件恢复软件。支持恢复不同存储介质数据:硬盘、光盘、U盘/移动硬盘、数码相机、手机、Raid文件恢复等,能恢复包括文档、表格、图片、音视频等各种文件。如果想学习更多关于EasyRecovery恢复文件的使用教程和常见问题解决方案,可参考EasyRecovery中文官网(http://http://www.easyrecoverychina.com/)。


    展开全文
  • .docx的文档损坏打不开,使用各种百度到的修复办法/修复工具/在线修复网页都无法解决。 尝试修改后缀/转换格式/使用wps打开再另存为,失败。 解决方法 经过查找资料,docx/doc文件的本质,是一个装了很多.xml文件...

    问题

    .docx的文档损坏打不开,使用各种百度到的修复办法/修复工具/在线修复网页都无法解决。
    尝试修改后缀/转换格式/使用wps打开再另存为,失败。
    在这里插入图片描述

    在这里插入图片描述

    解决方法

    经过查找资料,docx/doc文件的本质,是一个装了很多.xml文件的压缩包,用压缩文件工具打开可以看到。
    在这里插入图片描述解压缩,报错哪部分坏掉了,要做的就是从别的完好的docx文件里解压缩出来一个对应的替换进去,就好了。

    展开全文
  • word没保存却断电了该怎么办,如果你不知道怎么找回未保存的word文档那就要重新开始编辑word文档了~不想重来一次的话就来看看word没保存怎么恢复吧!而且还可以适用于恢复excel未保存文件! 1、打开我的电脑找到【C:...
  • 今天同事(王)在打开电脑打开 word文件时,报错:“word无法读取文档,文档可能损坏”明明是昨天下班还好好的文件,怎么就损坏了呢?1:打开word 后的 ,错误提示如图:2:解决方法打开word 程序,文件--打开--浏览...
  • 今天遇到这个问题,word刚刚关闭,然后就打不开了 出现上面提示 解决方法: 先打开一个可以打开的WORD文档 然后选择文件——打开——选择你那个损坏的WORD 然后点打开右边的向下箭头——选打开并修复, 一般都...
  • word怎么恢复自动保存Word can automatically create a backup of your document every time you save it. However, you can also have Word automatically save your document for you at regular intervals using ...
  • word文件文档文本恢复转换器

    千次阅读 2008-08-20 10:51:00
    遇到损坏的word文件(关键字:DOC文件修复,破损的word文件,无法读取/打开的word文件),其实不用在网上到处去找什么“文本恢复转换器”下载,现在的WORD中都有自带的。 最近有个word文档打开的时候提示文件损坏,需要...
  • c#实现word中的图文恢复(c#实现word中的图文分离的姊妹篇)
  • WORD2003无法打开WORD2000文档解决方法

    千次阅读 2009-02-12 09:48:00
    由于WORD软件版本不同等原因(如WORD2003),打开部分word文档时将提示:“Word无法读取文档,文档可能损坏”或者没有任何提示,就是没有任何东西。 这种情况主要是office2003未打sp1或sp2补丁造成的,有时候手上没有...
  • word文档存入数据库后,再从数据库读出字节流并用文件流(FileStream)写成word文件;...”在点击后,又提示:“word在《文件名》中发现无法读取内容,是否恢复此文档的内容?”点击就可以修复并打开。
  • word文档存入数据库后,再从数据库读出字节流并用文件流(FileStream)写成word文件;...”在点击后,又提示:“word在《文件名》中发现无法读取内容,是否恢复此文档的内容?”点击就可以修复并打开。
  • Microsoft office是每个办公人员所必备的办公软件,...Word文档被删,当然是要想办法恢复啦,这里推荐使用专业的数据恢复软件EasyRecovery,访问http://www.easyrecoverychina.com/xiazai.html获取该软件。 具体恢复...
  • Microsoft Word应用程序崩溃并且没有保存文档?如何恢复未保存的Word文档文件?或者意外删除或丢失了Word...搜索并键入文档的名称(至少其中的一部分)或只需* .doc(x)以获取所有Word文档。第1部分:如何恢复未保存的...
  • 症状 我自己的PHP,把word文档存入数据库后,再从数据库下载成docx文件;...后,又提示:“word在《文件名》中发现无法读取内容,是否恢复此文档的内容?”点击<是>就可以修复并打开。虽然不影响使...
  • 最近两天一直在写一份Word文件,今天打开时显示Word在试图打开文件时遇到错误:尝试检查文档或驱动器的文件权限。确保有足够的内存和磁盘空间。用文本恢复转换器打开文件。当时心里一惊,感觉最近两天的工作算是白做...
  • word文档在保存后消失,如何恢复?

    万次阅读 2016-12-26 13:59:02
    Windows系统和许多软件在工作时都会产生临时文件,这些临时文件大都保存在...比如,在WindowsXP中,Word指定的默认临时文件夹是“C押\DocumentsandSettings\用户名\ApplicationData\Microsoft\Word”文件夹。如果
  • java poi导出word之后再次对此wrod添加内容 ``` List<String> l = new ArrayList();...发现无法读取内容。是否恢复此文档的内容? 点击是之后word内容不会有多的。 如何再次对word内容添加
  • zip文件解压,直接导入到eclipse里 有两个类 分别支持读取word和pdf转word,pdf转word样式百分百保留,license证书已pj,如需商业用途请购买正版证书
  • 关于PHP 读取word 文档

    2016-09-29 14:36:24
    请问一下php读取word 文档 出现下列原因: ...b>Source:</b> Microsoft Word<... Word 无法读取文档,文档可能损坏。 请尝试下列方法: * 打开并修复文件。 * 用文本恢复转换器打开文件。
  • 问:在Word 2003中编辑好的公式无法显示,只显示为一个方框,该怎么办? 答:Word把使用公式编辑器输入的公式作为图形处理,编辑好的公式显示为一个方框是因为误开启了“图片框”功能,该功能使Word显示一个空白框...
  • 具体解决方法参见: http://blog.csdn.net/jiankunking/article/details/75213798个人微信公众号: 作者:jiankunking 出处:http://blog.csdn.net/jiankunking
  • Libreoffice打开文档读取错误恢复

    千次阅读 2016-03-01 14:57:49
    使用libreoffice打开.odt、.ods等格式的文档时发生如下图所示错误: 错误解决步骤 右击文件,选择“使用归档处理器打开“,从中可见context.xml文件。 备份context.xml,使用Firefox浏览器打开备份文件。...
  • itunes不能读取iPhone的内容,最好的解决办法是手机连接电脑,在弹出的弹框中点击确定,然后直接关闭itunes,打开Apowersoft手机管理大师,在文件管理中找到iTunes_Control文件夹,点击删除,再重启itunes即可恢复。...
  • 快速获取Word 2000快捷键列表

    千次阅读 2010-03-24 08:52:00
    使用Word 2000时,利用快捷键可以提高工作效率,但如何获得这些快捷键列表呢?笔者介绍一个简单的方法。 1.打开一个空白文档,单击“工具”菜单中的“宏”子菜单,然后单击“宏”命令。 2.在“宏的位置”框中,选择...
  • word技巧

    千次阅读 2018-03-01 21:40:22
    word 高效经典教程(整理版)目录一分钟驾驭word 高效经典教程(整理版)... 6A、基础知识... 61、度量单位... 62、WORD中文字字号与磅的对应关系... 63、字体文件格式... 7B、文本编辑... 71、快速移动文档... 72、...
  • 启用编辑后,sheet表名被更改,原因是sheet表名中含有“/”,不能被识别,去掉就好了
  • 前言 java web的word在线编辑实现过程可以分解为两步: 将word转为html 将前台修改完的html转为word文档 注:只支持docx文档,即word2007 ...二、查看xml内容 这里我们先查看主要的配置文件do...
  • [简单]poi读取word 2007简单文本框值

    千次阅读 2015-02-28 12:03:45
    //恢复上次位置 selectPathCursor.toParent();//w:txbxContent selectPathCursor.toChild(1);//w:p[1] selectPathCursor .selectPath("declare namespace ve='...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,972
精华内容 19,988
关键字:

word无法读取的内容恢复