Bir dosya indirme zorlamak nasıl?

3 Cevap php

Benim sitelerden birinde her videonun altında "Bu Dosyayı indirin" fonksiyonu eklemek için arıyorum. Bazen tarayıcıda bir dosyayı çalmaya başlar beri ben, bunun yerine sadece kendisine bağlama, dosyayı indirmek için kullanıcı zorlamak gerekir. Sorun video dosyalarını ayrı bir sunucu üzerinde saklanır, olduğunu.

Herhangi bir şekilde ben PHP indirme zorlayabilir?

3 Cevap

Sen böyle bir şey deneyebilirsiniz:

$file_name = 'file.avi';
$file_url = 'http://www.myremoteserver.com/' . $file_name;
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"".$file_name."\""); 
readfile($file_url);
exit;

Ben sadece test edilmiş ve bu benim için çalışıyor.

readfile uzak url okumak mümkün olması için lütfen unutmayın, sizden fopen_wrappers etkin olması gerekir.

Bu deneyin:

<?php
$FileName = '/var/ww/file.txt';
header('Content-disposition: attachment; filename="'.$FileName.'"');
readfile($FileName);

Anahtar header() olduğunu. Sen download ile birlikte başlık göndermek için gereken ve kullanıcının tarayıcısında "Dosyayı Kaydet" diyalog zorlar.

<?php
$FileName = '/var/ww/file.txt';
header('Content-disposition: attachment; filename="'.$FileName.'"');
readfile($FileName);

Bu kodu kullanarak. ne istediğinizi için dosya adını kaydetmek mümkündür. http://remoteserver.com/file.mp3 yerine "file.mp3" siz "newname.mp3" olarak dosya indirmek için bu komut dosyasını kullanabilirsiniz arasında: örneğin url var