php ile bir dosya indirme zorlama

3 Cevap php

Indir o indir neden web sayfasından html ekler olur ben, indir meydana yapmak için biliyorum. Nasıl HTML filtre mi?

3 Cevap

Ben PHP sayfa çıktı indirmek için bazı akışı çalışıyorsun anlıyoruz?

Gerekirse HTML içeren sayfasından içerik, ancak başlıklarıyla birlikte, sadece indir akımın çıkışını ayrı php sayfasına yönlendirmek, böylece, o zaman yok çıktı.

Ben doğru anlamak ortak bir sorun var. Ben HERHANGİ çıkış yapıldıysa önce ve ben aşağıdakileri yapın indirmek için benim index.php (start / root / giriş dosyası) başında ob_start kullanarak çözmüştür:

  ob_end_clean();
  header("Content-Type: application/octet-stream; "); 
  header("Content-Transfer-Encoding: binary"); 
  header("Content-Length: ". filesize("thefileinquestion").";"); 
  header("Content-disposition: attachment; filename=thefileinquestion");
  $fp = fopen(thefileinquestion, "r"); 
  while(!feof($fp)){
    $buffer = fread($fp, 1024); 
    echo $buffer;
    flush(); 
  } 
  fclose($fp);
  die();

Update

ob_start komutu herhangi bir çıktı (örn. eko, printf) tamponlar ve gerçek yükleme ÖNCE kullanıcıya göndermek olması bir şey engeller. ob_end_clean durur bu davranış daha ve yine doğrudan çıkışı sağlar. HTH.

Eğer dosya akımının sonra ek veri çıkışının değil emin olun tamamlandı. Dosya akışı bittikten sonra sayfa yürütme bitirmek () çıkmak için bir çağrı kullanın. Kapanmasından sonra herhangi bir karakter '?>' (Örneğin bir satır gibi) etiketi de indirme sorunlara neden olabilir.

Tek bir şey yapar, çünkü kendi dosya indirme komut hareket, herhangi bir sorun bulmak kolay yapmak gerekir. Bu durumda da sizin yazısının sonunda herhangi bir nihai satırsonlarını çıktılamak önlemek için, kapanış atlayabilirsiniz? '>' Etiketi.