Readfile üzerinden bir dosyanın CRC değiştirme ()

1 Cevap php

Bir kullanıcı onlar belirttiğiniz adresten benim sunucu üzerinden bir dosya indirmesini sağlayan kurmak bu kodu var. Dosya readfile kullanarak aracılığıyla dereler () bu yüzden sadece benim bant genişliği kullanır.

<?php

set_time_limit(0);

$urlParts = explode("/", $_SERVER['PHP_SELF']);
$file = $urlParts[3];

header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename=' . $file);
header("Content-Transfer-Encoding: binary\n");
readfile($file);

?>

Bu komut dosyası çalışır, ancak indirilen dosyanın CRC karma değişmez. Ne yapmak istiyorum, onu bozmadan karma değiştirebilirsiniz böylece dosyanın sonuna rastgele bit append. Senaryonun sonuna echo md5(rand() . time()); gibi bir şey ekleyerek denedim ama çalışmıyor.

Bu cURL gibi bir şeyle mümkün olup olmadığını bu mümkün olsaydı cURL geçmek istiyorum çünkü birisi, bazı kod örnekleri ortaya koysa ben sevinirim.

Yardımlarınız için teşekkürler.

1 Cevap

Hmm, kod benim için çalışıyor:

test.php:

set_time_limit(0);

$urlParts = explode("/", $_SERVER['PHP_SELF']);
//$file = $urlParts[3];
$file = 'toread.txt';

header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename=' . $file);
header("Content-Transfer-Encoding: binary\n");
readfile($file);
echo md5(rand() . time());

?>

toread.txt:

Bu toread.txt içeriğidir

Şimdi curl kullanarak, ben şu sonuçları elde:

>curl -i http://example.com/test.php
HTTP/1.1 200 OK
Date: Tue, 04 Mar 2014 07:09:39 GMT
Server: Apache
Cache-Control: public, must-revalidate
Pragma: hack
Content-Disposition: attachment; filename=toread.txt
Content-Transfer-Encoding: binary
Transfer-Encoding: chunked
Content-Type: application/force-download
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Age: 0

Bu toread.txt içeriğidir38d8a8009fad7315bdf5e823a06018e7

Ve ikincisi:

>curl -i http://example.com/test.php 
HTTP/1.1 200 OK
Date: Tue, 04 Mar 2014 07:09:57 GMT
Server: Apache
Cache-Control: public, must-revalidate
Pragma: hack
Content-Disposition: attachment; filename=toread.txt
Content-Transfer-Encoding: binary
Transfer-Encoding: chunked
Content-Type: application/force-download
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Age: 0

Bu toread.txt içeriğidir3b87356ea9ee007b70cfd619e31da950