Witam,
Mam problem z force downloadem opartym na hederach. Mianowicie jest sobie stronka
http://www.dingus.yoyo.pl/index.php?page=uploadPo wrzuceniu na nią pliku jest tworzony losowy katalog w folderze 'store' oraz zostają zapisane do bazy inne informacje.
To wszystko działa ok. Plik się pojawia, ma chmody 777 (na foldery i plik).
Plik poprawnie się pobiera jak wskaże w przeglądarce ścieżkę. Jednak jest problem z force downloadem. Plik owszem ściąga się i nawet ma taki sam rozmiar, jednak nie idzie go odpalić (IMG:
style_emoticons/default/sad.gif) .
Np:
http://www.dingus.yoyo.pl/download.php?key=6878062317613BProszę o pomoc. Oto kod downloaded.php (frame download.php)
<?php
//
//sprawdza czy wylosowana i dodana liczba zgadza sie liczbie wylosowanej w danym dniu :-)
//$data = date("Y-m-d");
//$odczyt2 = mysql_query("SELECT * FROM dni where dataa = '$date");
//$sprawdz_date = mysql_fetch_array($odczyt2);
//
//BODY
<div class="post">
<h1 class="title">'.$contents['download_files'].'</h1>
<div class="entry">
<p><img src="images/download.png" alt="" width="64" height="64" class="left" />Pobierz plik! Możesz pobierać 1 plik co 1h! ?</p>
<center><input type="submit" id="1" onclick="parent.location.href=\'http://www.dingus.yoyo.pl/download.php?day=1&key='.$_GET['key'].'\'" value="Proszę czekać 1 sekund" />
<script type=\'text/javascript\'>
document.getElementById(\'1\').disabled = true;
var counter = 1;
function countdown(counter) {
counter--;
document.getElementById(\'1\').value = \'Proszę czekać \' + counter + \' sekund\';
if(counter == 0) {
document.getElementById(\'1\').disabled = false;
document.getElementById(\'1\').value = \'Pobierz Plik\';
}
return counter;
}
setInterval(\'counter = parseInt(counter); if(counter > 0) { counter = countdown(counter); }\', 1000);
</script></center>';
if($_GET['day'] == '1')
{
/* if (!file_exists($dl_full))
{
//powrót do strony głównej + napis ze plik nie istnieje :-)
exit();
}
$nazwa_pliku = $pliki['nazwa_pliku'];
$dl_full=''.$dir_store.'/'.$pliki['folder'].'/'.$pliki['nazwa_pliku'].'';
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$nazwa_pliku");
header("Content-Length: ".filesize($dl_full));
header("Accept-Ranges: bytes");
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-transfer-encoding: binary");
@readfile($dl_full);
exit(); */
if(file_exists(''.$dir_store.'/'.$pliki['folder'].'/'.$pliki['nazwa_pliku'].'')){ //wyslanie naglowkow - pliku
header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename='.$pliki['nazwa_pliku']); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Transfer-Encoding: binary"); header('Content-Length: '.filesize(''.$dir_store.'/'.$pliki['folder'].'/'.$pliki['nazwa_pliku'].'')); @readfile(''.$dir_store.'/'.$pliki['folder'].'/'.$pliki['nazwa_pliku'].''); }
else{
echo'Bledny link lub plik nie istnieje!'; }
return false;
}
</div>
<div class="post">
<h2 class="title">'.$l_menu['advertisement'].'</h2>
<div class="entry"><center>';
include ('advertisement2.php');
</div>
</div>
</div>';
?>
Jeżeli coś jeszcze potrzeba to podrzucę (IMG:
style_emoticons/default/sad.gif)
cfg:
<?php
//session_start(); //sesje, do logowania
//ob_start(); //emulacja headerow
//////////////////////////////////////////////////////////////////////////////////////////UPLOADER!
//CFG///////////////////////////////////////////////////////////
# individual file size limit - in bytes (102400 bytes = 100KB)
$file_size_ind = "10240000";
# the upload store directory (chmod 777)
$dir_store= "store";
# sciezka dostepu do katalogu. Domyslnie: "/var/www/sites/yoyo.pl/d/i/dingus/$dir_store"
$sciezzka= "/var/www/sites/yoyo.pl/d/i/dingus/$dir_store";
# rozszerzenia zabronione
$file_ext_allow = array("php", "html", "htm", "cgi"); //Funckje i inne pierdułki!/////////////////////////////////////
//
?>