Я использую Transfer-Encoding: chunked
для написания ответа HTTP.Perl Разделить двоичные данные на куски с помощью Unpack
Ответ разделен на части с помощью следующих действий:
my $template = "a$buffer_size" x int(length($response)/$buffer_size) . 'a*';
foreach my $buffer (unpack $template, $response){
...
}
Это хорошо работает, когда тип контента text/html
, но это повреждающих двоичные данные, такие как application/pdf
.
Может ли unpack
использоваться для разделения двоичных данных на равные длины?
Когда вы говорите, что тип контента вызывает повреждение, подтвердили ли вы, что, пытаясь получить доступ к тем же данным, отправьте их с разными типами MIME? – Dancrumb
Кроме того, какова природа коррупции? – Dancrumb
@ Dancrumb «Коррупция» заключается в том, что файл неправильно помечен как UTF-8, а не ANSI. Странно, если я симулирую 'unpack' с' grep {/ \ S /} split/(.{$ buffer_size})/', все в порядке. Кроме того, логика 'unpack' в порядке, если она выполнена в командной строке (то есть не через mod_perl или ActiveState PerlEx). – xpsd300