2017-02-06 36 views
0

我試圖使用PHP REST API(https://github.com/dersam/RTPHPLib)從RT 4.2.8票據下載附件。 我已經使用了Ticket Attachment Content和Ticket Attachment。他們返回某種字符串或數組像這樣的(基本上它輸出的文件內容):請求跟蹤器4.2.8 PHP REST API下載附件

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文件寫這篇文章,然後下載它,但它贏得了不開放。

如何在本地下載票據附件?我希望這是動態的(不管文件擴展名)

回答

0

對於二進制內容,需要額外撥打getAttachmentContent。這將以原始編碼返回文件內容。

問題出在RT的使用UTF-8的響應,它也編碼Content部分。不幸的是,RT不存儲附件的原始編碼,導致一個不可靠的Content部分,使得RTPHPLib無法智能地進行猜測。

請參閱https://github.com/dersam/RTPHPLib/issues/66瞭解最近的一些討論。