Pluton Mesaj tarihi: Kasım 22, 2007 Paylaş Mesaj tarihi: Kasım 22, 2007 Valla bu konuyu açmak için 3 gündür düşünüyorum. Korkar oldum artıkın bu bölüme konu açmaya. Şimdik bi dizi procesi için uraşıyorum. Yapmak istediğim şey şu. uploads/ klasöründen hiç bir dosyanın direk indirilememesi. htaccess - deny from all Kullanınca bunun önüne geçiyorum. Sonra şöyle bir kod ile dl ettirmeye çalışıyorum. $file = file_get_contents('uploads/'.$r['url']); header("Content-type: video/msvideo"); header("Content-Disposition: attachment; filename=".$bol[2].";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".strlen($file)); echo $file; Ama velakin 350MB ile 700MB arasında değişen boyutlarda oldugu için memory limite takılıyo. php.ini ayarından onuda yükseltiyorum. Evet sorun burda başlıyor. Bu seferde sunucu bulunamıyor hatası veriyo. 10-20MB 'lık dosyaları dl ediyo ama 350MB dl ettiremiyorum. Şimdi sizden ne istiyorum. Bunun çözümü olabilir? Yada diğer sitelerden deny from all kullanmadan nasıl dosya çekilmesini engelleyebilirim ? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 22, 2007 Paylaş Mesaj tarihi: Kasım 22, 2007 <?php ############################################################### # File Download 1.21 ############################################################### # Visit http://www.zubrag.com/scripts/ for updates ############################################################### # Sample call: # download.php?f=phptutorial.zip # # Sample call (browser will try to save with new file name): # download.php?f=phptutorial.zip&fc=php123tutorial.zip ############################################################### // Download folder, i.e. folder where you keep all files for download. // MUST end with slash (i.e. "/" ) define('BASE_DIR','/home/user/downloads/'); // log downloads? true/false define('LOG_DOWNLOADS',true); // log file name define('LOG_FILE','downloads.log'); // Allowed extensions list in format 'extension' => 'mime type' // If myme type is set to empty string then script will try to detect mime type // itself, which would only work if you have Mimetype or Fileinfo extensions // installed on server. $allowed_ext = array ( // archives 'zip' => 'application/zip', // documents 'pdf' => 'application/pdf', 'doc' => 'application/msword', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/vnd.ms-powerpoint', // executables 'exe' => 'application/octet-stream', // images 'gif' => 'image/gif', 'png' => 'image/png', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', // audio 'mp3' => 'audio/mpeg', 'wav' => 'audio/x-wav', // video 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mpe' => 'video/mpeg', 'mov' => 'video/quicktime', 'avi' => 'video/x-msvideo' ); #################################################################### ### DO NOT CHANGE BELOW #################################################################### // Make sure program execution doesn't time out // Set maximum script execution time in seconds (0 means no limit) set_time_limit(0); if (!isset($_GET['f']) || empty($_GET['f'])) { die("Please specify file name for download."); } // Get real file name. // Remove any path info to avoid hacking by adding relative path, etc. $fname = basename($_GET['f']); // Check if the file exists // Check in subfolders too function find_file ($dirname, $fname, &$file_path) { $dir = opendir($dirname); while ($file = readdir($dir)) { if (empty($file_path) && $file != '.' && $file != '..') { if (is_dir($dirname.'/'.$file)) { find_file($dirname.'/'.$file, $fname, $file_path); } else { if (file_exists($dirname.'/'.$fname)) { $file_path = $dirname.'/'.$fname; return; } } } } } // find_file // get full file path (including subfolders) $file_path = ''; find_file(BASE_DIR, $fname, $file_path); if (!is_file($file_path)) { die("File does not exist. Make sure you specified correct file name."); } // file size in bytes $fsize = filesize($file_path); // file extension $fext = strtolower(substr(strrchr($fname,"."),1)); // check if allowed extension if (!array_key_exists($fext, $allowed_ext)) { die("Not allowed file type."); } // get mime type if ($allowed_ext[$fext] == '') { $mtype = ''; // mime type is not set, get from server settings if (function_exists('mime_content_type')) { $mtype = mime_content_type($file_path); } else if (function_exists('finfo_file')) { $finfo = finfo_open(FILEINFO_MIME); // return mime type $mtype = finfo_file($finfo, $file_path); finfo_close($finfo); } if ($mtype == '') { $mtype = "application/force-download"; } } else { // get mime type defined by admin $mtype = $allowed_ext[$fext]; } // Browser will try to save file with this filename, regardless original filename. // You can override it if needed. if (!isset($_GET['fc']) || empty($_GET['fc'])) { $asfname = $fname; } else { // remove some bad chars $asfname = str_replace(array('"',"'",'','/'), '', $_GET['fc']); if ($asfname === '') $asfname = 'NoName'; } // set headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Type: $mtype"); header("Content-Disposition: attachment; filename="$asfname""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $fsize); // download // @readfile($file_path); $file = @fopen($file_path,"rb"); if ($file) { while(!feof($file)) { print(fread($file, 1024*8)); flush(); if (connection_status()!=0) { @fclose($file); die(); } } @fclose($file); } // log downloads if (!LOG_DOWNLOADS) die(); $f = @fopen(LOG_FILE, 'a+'); if ($f) { @fputs($f, date("m.d.Y g:ia")." ".$_SERVER['REMOTE_ADDR']." ".$fname."n"); @fclose($f); } ?> Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Pluton Mesaj tarihi: Kasım 22, 2007 Konuyu açan Paylaş Mesaj tarihi: Kasım 22, 2007 teşekkürler mum bu oldu Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar