Takip dosyası tam indir

2 Cevap php

Ben bir dosya barındırma sitesi var ve kullanıcılar yüklemeler için bir ödül kazanmak. Yani bilmek istedim ben sadece senin için sahte kısmi indirme vardır, böylece ziyaretçinin tüm dosyayı karşıdan olmadığını izleyebilirsiniz bir yolu yoktur.

Teşekkür ederiz.

2 Cevap

Eğer web sunucusu tarafından döndürülen HTTP yanıt kodlarını izlemek ve bunları oluşturulan oturumları onları geri kravat olsaydı, iş olurdu.

206 bir yanıt kodu sistemi bunun bilgilerin tümünü değil bazılarını teslim olduğunu gösterir. Dosyanın son öbek dışarı gittiğinde, 206 bir yanıt kodu olmamalıdır.

Eğer URL içindeki oturum kodu koyarak kullanıcı oturumları için bu kravat, o zaman basit bir log toplama göre puan verebilir.

Bir dosya barındırma web sitesinde benzer bir çözüm uyguladı.

Ne yapmak istediğiniz ne olursa olsun sonuç bir php komut dosyası yürütme sonunu algılamasına izin register_shutdown_function geri arama kullanmaktır.

Fikir müşteriye kabul edilmiştir kaç bayt takip edebilmek olmak istiyorum olmak: O sizin sunucuda olmayan bir web erişilebilir konum (lar) daki dosya var ve indirme php üzerinden gitmek istiyorum.

Burada örneğin (uygulama temel bir yolu :)

<?php
register_shutdown_function('shutdown', $args);

$file_name = 'file.ext';
$path_to_file = '/path/to/file';
$stat = @stat($path_to_file);

//Set headers
header('Content-Type: application/octet-stream');
header('Content-Length: '.$stat['size']);
header('Connection: close');
header('Content-disposition: attachment; filename='.$file_name);

//Get pointer to file
$fp = fopen('/path/to/file', 'rb');
fpassthru($fp);

function shutdown() {
  $status = connection_status();

  //A connection status of 0 indicates no premature end of script
  if($status == 0){
    //Do whatever to increment the counter for the file.
  }
}
>?

Orada artırmanın yolları Açıkçası, bu nedenle daha fazla bilgi veya başka bir davranış gerekiyorsa, lütfen bana bildirin!