Как я могу добавить изображение в созданный php документ MS Word? - PullRequest
0 голосов
/ 30 января 2010

Вот мой код, сильно урезанный.

<?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?

Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 30 января 2010

Есть ли в вашем коде что-то урезанное, которое преобразует весь этот HTML в файл MS Word?

Потому что ... э-э ... вы знаете, что сохранение файла HTML с расширением .doc на самом деле не делает его файлом Word, верно?

Если у вас есть HTML, просто используйте его как HTML, и пользователь сможет позаботиться о сохранении изображений с помощью собственной функции браузера «Сохранить веб-страницу с изображениями». Или вы можете написать файл MHTML, если хотите, включая изображения внутри него.

Но расширение HTML-file-hiding-under-DOC-file-extension на самом деле не является допустимым. Это то, на что не стоит полагаться, если Word вообще сможет загрузить / импортировать объект; просить, чтобы он также перетаскивал изображения, просить луну на палочке.

Да, meta - это единственный способ установить кодировку, когда вы предоставляете файл HTML, который, как вы ожидаете, будут сохранять люди. Заголовок Content-Type обычно является хорошим местом для его размещения, но эта информация будет потеряна, как только файл будет сохранен в файловой системе, которая не поддерживает сохранение метаданных типа (который в настоящее время является всеми популярными файловыми системами) .

Кстати, символы не ASCII, такие как é, совершенно ненадежны для включения в параметр заголовка filename. Они рассматриваются как разные кодировки в зависимости от браузера (и для IE, также от локали), и стандартного способа их избежать не существует. Единственный надежный способ поместить не-ASCII-символы в имя файла загружаемого файла - это оставить их в виде конечных частей URL, закодированных как UTF-8. eg.:

http://www.example.com/download.php/Contrat%20d%27%C3%A9tude.doc
0 голосов
/ 23 августа 2014

Создайте шаблон в MS WORD (добавьте несколько изображений) и сохраните его в виде файла doc. Откройте этот файл в notepad ++ или редакторе кода smth, скопируйте весь код в файл php и добавьте переменные php. Для добавления изображения вам необходимо конвертировать изображение в формат base64. Если вы заметили код файла слов, добавленные изображения представляют собой символьный формат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...