Я пытаюсь загрузить вложения из RT 4.2.8 с помощью PHP REST API (https://github.com/dersam/RTPHPLib).
Я использовал содержимое приложения Ticket Attachment. Они возвращают какую-то строку или массив вроде этого (в основном это выводит содержимое файла):
Array
(
[%PDF-1.4
%����
] =>
[10 0 obj
<>
endobj
] =>
[15 0 obj
<>/Filter/FlateDecode/ID[<4DCDA9C01A05A34BB7A89B62345FD905><4DCDA9C01A05A34BB7A89B62345FD905>]/Index[10 7]/Info 9 0 R/Length 36/Prev 805889/Root 11 0 R/Size 17/Type/XRef/W[1 2 0]>>stream
] =>
[h�bbd`b`�db`�eb`����^��"��
] =>
[endstream
endobj
startxref
] =>
[0
] =>
[%%EOF
] =>
[16 0 obj
<>stream
] =>
[h�b```f``����33 �������L f(f`�ca```h�o�1���iF �`�] =>
[O
] =>
[endstream
endobj
11 0 obj
<>
endobj
12 0 obj
<>>>/Rotate 270/Type/Page>>
endobj
Я попытался записать это с помощью php fwrite / file_put_contents в файл tmp, а затем загрузить его, но он не открывается.
Как я могу скачать приложения к билетам на месте? Я хочу, чтобы это было динамически (независимо от расширения файла)
Для двоичного содержимого необходимо сделать дополнительный вызов getAttachmentContent
, Это вернет содержимое файла в оригинальной кодировке.
Проблема исходит от RT, использующего UTF-8 в своем ответе, который также кодирует Content
раздел. К сожалению, RT не хранит исходную кодировку вложения, что приводит к ненадежности Content
раздел, что делает невозможным интеллектуальное гадание для RTPHPLib.
Увидеть https://github.com/dersam/RTPHPLib/issues/66 для недавнего обсуждения этого.
Других решений пока нет …