繁体   English   中英

为什么存储在mysql中的docs这个词没有分页显示?

[英]Why are the word docs, stored in mysql being displayed without page breaks?

我将.docx文件作为大块存储在mysql数据库中,以单独的块存储(以免每个blob溢出)。 然后在php中,将数据库中的块“粘合”在一起后,显示文档。 除了文档似乎没有分页符外,一切看起来都很不错,这在尝试将其导出到其他程序时是一个问题。 任何人都知道如何在该页面中或在哪里出错的地方得到分页符吗?

<?
$username=xxx;
$password=xxx;
$database=xxx;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Unable to select database");

$doc=$_GET['doc'];
header('Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
$request = mysql_query("SELECT docData FROM tblDoc WHERE doc='$doc' ORDER BY pieceOrder ASC");
while($row=mysql_fetch_array($request)) {
    echo $row['docData'];
}
mysql_close();
?>

DOCX文件只是一个重命名的ZIP文件,其中包含许多XML文件和其他资产。 如果将文件拆分为要上传的文件,然后以正确的顺序重新组合以进行下载,则与原始上传的文件完全没有任何区别。 但是,如果重新组装文件时出错,则极有可能根本无法打开该文件。 实际删除分页符的唯一方法是从某些内部XML文件中删除那些特定的XML标签。

但是,这可能是一个长镜头,MS Word窗口的右下方,缩放滑块的左侧有五个小图标,指示您用于查看文档的视图。 (可以通过功能区中的“视图”->“文档视图”访问相同的视图。)(具体细节在Word版本中可能会有所不同。)现在,默认值是第一个,即“ 打印布局” ,然后是“全屏阅读” ,“ Web布局” ,“ 大纲”草稿 对于来自Web的文档,您的Word副本是否可能自动打开Web布局 网页版式没有分页符。)

还有两件事:

  1. 您还应该添加一个Content-Disposition标头以指示应下载此文件(也可以指定文件名,将其保存在此处):

     $filename = 'example.docx'; header('Content-Disposition: attachment; filename='.$filename); 
  2. 您不应该使用mysql_ 函数,它们已被弃用,存在安全隐患,并且导致代码无法维护。 您最好使用mysqli_PDO进行数据库访问。 这里更多。

事实证明,一切都存储得很好。 如您所说,@ pilsetnieks。 就在那时,当我从我的应用程序导出时,我没有将其分配为正确的类型,因此它不希望它具有格式化的格式。 感谢你的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM