Php Header İle Dosyaya Yönlendirmek ( Soru )
-
Şimdi istedigim şey download.com daki gibi dosya farkli bir serverdada olsa, dosya indirme ( su meshur ac kaydet fln yazan pencere ) penceresinin cikmasini istiyorum.Yani tiklandimmi bir dosyaya yonlendiricek..Ve direk download dialogu cikacak.
header("Location: http://x.com/a.zip");
Bu sekilde yapmaya calisirsak, bazi zeki browserlar txt olarak fln acmaya calisior, jpg ise sormadan acior v.s v.s..
Bildigim yontem olan
header('Content-Disposition: attachment; filename="indirilen.pdf"');
readfile('original.pdf');Content type octetstream yollatip, bu sekilde yapmaya calissakta, dosya serverda degil nasi okuyacak server...
Simdi nasil servera dosyayi indirtmeden, kullaniciyi dosyaya yonlendirebilirim ?
Gereksiz yorum yapilmazsa mesud olurum..
j4x tarafından 27/Mar/25 10:07 tarihinde düzenlenmiştir -
anlatamadim hocam, farkli bir serverdaki .jpg dosyasi mesela hedef, tiklandiginda ac kaydet v.s cikmasini istiorm.
-
al hocam o zaman..
http://www.pro-turk.net/dtc.jpg
bunu yap soyledigin sekilde, tikladinmi dosya indirme penceresi gelsin..
Ihtiyacim olarak sey bu dosyanin octet-stream oldugunu belirtip farkli bir dosyaya yonlendirmek.
-
Hocam Phpmyadminde yedek alırken dosya olarak kaydet diye bi zımbırtı vardı, onun kaynak kodlarına bak istersen, düzgün çalışıo olması lazım...
-
php my admin zaten kendi serverindan cekior abi, onu bulsamda bi isime yarayacagini sanmiorm
-
<?
$link="http://h4ckinger.org/dosya.rar";
$boyut=remotefsize($link);
$tipi="application/x-compressed";
function remotefsize($path) {
$fp = fopen($path,"r");
$inf = stream_get_meta_data($fp);
fclose($fp);
foreach($inf["wrapper_data"] as $v)
if (stristr($v,"content-length")) {
$v = explode(":",$v);
return trim($v[1]);
}
}
header ("Content-transfer-encoding: binary");
header ("Content-Type: ".$tipi);
header ("Content-Disposition: attachment; filename=\"" . $ad . "\"");
header ("Content-Length: ".$boyut);
header ("Pragma: public");
header ("Expires: 0");
header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header ("Cache-Control: private");
$fp=fopen($link,"r");
while(!feof($fp)){
$bas=fread($fp,512);
echo $bas;
}
?>
not:allow_url_fopen = On olması gerek
//edit: iyi bandwith yer söyleyim -
Saol oncelikle. Peki Servera indirmeden baska bir yontemi yokmudur bunun :)
Istedigim tam olarak surdaki gibi
www.getdota.com , burda mirror secip download butonuna tiklayinca indirior. Hepsini servera indirip attiktan sonra, nie birsuru mirror acsin adam..
Bunun nasil yapildigini bilen biri aciklarsa cok makbule geçer
-
php nin yönlendirme fonksiyonları biraz sakat
<script>
window.open("xxx.php","_self");
</script>
biçiminde javascript kullanmanı öneririm , php headerları ile yönlendirmeler nedense herseferinde aynı çalışmıyor ama js in aynı tüm browserlarda
-
tamam hocam ben olsam bunu
window.open("http://www.xxx.com/abc.zip","_blank") ;
biçiminde yapardım
