Thread Bester Weg zum Streaming
(23 answers)
Opened by bianca at 2017-06-18 16:17
Mir ist aus Deinem Beispiek nicht so ganz klar, woher $cont kommt - aber das sieht verdächtig danach aus, als ob der Server versucht, die gesamten 500MB in einen Perl-Skalar zu packen. Das ist keine gute Idee.
Wenn's nur darum geht, große Mengen von Daten von A nach B zu packen, dann nimmt man in Perl dafür ![]() ![]() Den Header kannst Du mit "normalem" print absetzen, wenn Du zuvor das Puffern in I/O-System ausschältst mit $| = 1;. Ein Komplettbeispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 use autodie; my $datei = 'my_huge_video.mp4'; my $type = 'whatever'; my $groesse = (stat $datei)[7]; my $name = 'Twelve Dances With God: In the Pay of Spain'; my $header = <<"EOH"; Content-Type: $type\nContent-length: $groesse Content-Disposition: attachment; filename: "$name"; EOH { local $| = 1; print $header; open my $input,'<',$datei; my $buffer; while (sysread $input,$buffer,1024*1024) { syswrite STDOUT,$buffer; } } |