0

我正在尝试使用 PHP REST API ( https://github.com/dersam/RTPHPLib ) 从 RT 4.2.8 票证下载附件。我使用了 Ticket Attachment Content 和 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 文件,然后下载它,但它不会打开。

如何在本地下载票证附件?我希望这是动态的(无论文件扩展名如何)

4

1 回答 1

0

对于二进制内容,需要额外调用getAttachmentContent. 这将以原始编码返回文件内容。

问题来自 RT 在其响应中使用 UTF-8,它也对该Content部分进行了编码。不幸的是,RT没有存储附件的原始编码,导致Content部分不可靠,使得RTPHPLib无法智能猜测。

有关最近对此的一些讨论,请参阅https://github.com/dersam/RTPHPLib/issues/66 。

于 2017-03-29T15:00:24.167 回答