2016-02-12 6 views
1

Это было предложено до, много лет назад, но без ответа corrupt docx when adding imagephpdocx добавить изображение делает DOCX коррумпированной

Эй

У меня есть шаблон, где я заменить некоторые переменные и генерировать DOCX документ ... Это отлично работает.

Как только я добавляю изображение, слово говорит мне, что файлы повреждены. Но, допустив, что Word правильно, ошибка дает мне документ, поскольку я ожидаю, что это будет с изображением.

Im добавляя изображения, как это ...

$docx->addBreak(array('type' => 'page')); 
      $options = array(
      'src' => $value['110333870356bc784cf1b6b0.56722572.png'], 
      'imageAlign' => 'center', 
      'scaling' => 100, 
      'spacingTop' => 10, 
      'spacingBottom' => 0, 
      'spacingLeft' => 0, 
      'spacingRight' => 20, 
      'textWrap' => 0, 

      ); 
      $docx->addImage($options); 

Im потерял здесь ..? ..

+0

Как вы служите ваши DOCX файлы при их загрузке? Проверьте свои заголовки: прочитайте здесь: http://stackoverflow.com/questions/12062337/serving-docx-files-through-my-webserver-are-corrupt-when-opened – Kinnectus

+0

@BigChris: docx генерируется отлично без image (s). Проблема заключалась в добавлении изображения, искажающего файл. Причина этого объясняется ниже в моем ответе на вопрос .. – DTH

ответ

1

После контакта с 2mdc (создателем phpDocX) они сказали мне, что PHP не может получить правильное расширение из-за имени файла, которое я вставляю. В результате phpDocX добавляет некоторые неправильные значения (например, dpi и расширение имени изображения).

Как уже упоминалось в моем вопросе, Word способен обнаружить эти ошибки и исправить их.

изменил мою рутину, которая создает свои «уникальные» имена изображений, чтобы убедиться, что ползунков нет, и это устранило проблему ..

В результате, имя файла: 110333870356bc784cf1b6b0.56722572.png вместо этого стать 110333870356bc784cf1b6b0656722572 .png (или другое сгенерированное имя файла).

1

Просто чтобы поделиться своим опытом. У меня была такая же проблема, но не по той же причине. Это потому, что расширение файла изображения, которое я хотел вставить (addImage), было в заглавной букве. Пример:

  • изображение. JPG ==> приведет к «поврежденному» файлу.
  • изображение. jpg ==> результат ОК!

Я надеюсь, что это поможет кому-то ...

Смежные вопросы