这是我的代码,大大被截断了。
<?php
session_start();
header("Content-Type: application/msword");
header('Content-Disposition: attachment; filename="Contrat d\'étude.doc"');
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p align="right">Version: A</p>
<img src="img/logoPoly.png" alt="École Polytechnique de Montréal" />
<h1>CONTRAT D'ÉTUDES HORS QUÉBEC</h1>
............
我在这里尝试使用常规img标签添加图像,但是一旦在用户的计算机上,路径就不起作用了,显然..那我怎么能这样做呢?
顺便说一句,元标记是设置字符集的好方法吗?或者有更好的方法,也许使用php头函数?
感谢您的帮助!
答案 0 :(得分:2)
您的代码中是否有截断的内容将所有HTML转换为MS Word文件?
因为......呃...你知道保存一个带有.doc
扩展名的HTML文件实际上并不是一个Word文件,对吗?
如果你有HTML,只需将其作为HTML提供,用户可以使用浏览器自己的“保存带图像的网页”功能来保存图像。或者你可以写一个MHTML文件,包括里面的图像。
但HTML文件隐藏在DOC文件扩展名下并不是真正有效的格式。如果Word设法加载/导入该东西,那么你不应该依赖它;要求它拖动图像也是要求用棍子上的月亮。
是的,meta
是在提供您希望人们保存的HTML文件时设置字符集的唯一方法。 Content-Type
标题通常也是放置它的好地方,但是一旦文件保存在不支持保存类型元数据的文件系统上(当前,所有受欢迎的文件),该信息将丢失文件系统)。
顺便提一下,像é
这样的非ASCII字符完全不可靠,不能包含在filename
标头参数中。它们被视为不同的编码,具体取决于浏览器(以及IE,也包括语言环境),并且没有标准的方法来转义它们。将非ASCII字符放在下载文件的文件名中的唯一可靠方法是将它们保留为尾随URL部分,编码为UTF-8。例如:
http://www.example.com/download.php/Contrat%20d%27%C3%A9tude.doc
答案 1 :(得分:0)
在MS WORD上创建模板(添加一些图像),并将其另存为doc文件。在notepad ++或smth代码编辑器上打开此文件,将所有代码复制到php文件中并添加您的php变量。 要添加图像,您需要将图像转换为base64格式。如果你注意到word文件代码,添加的图像是一些基于字符的格式。