Jump to content

ChandraPraksh

New Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by ChandraPraksh

  1. I am using code for download a file in PHP. code works fine for all videos but when i try to download video larger than 1 GB it failed and show me network error. but if i use jdownloader it download the files. <?php set_time_limit(0); ini_set('memory_limit', '2G'); function getMimeType($fileName) { $c_type_default = "application/octet-stream"; $content_types = array( "exe" => "application/octet-stream", "zip" => "application/zip", "mp3" => "audio/mpeg", "mpg" => "video/mpeg", "avi" => "video/x-msvideo", "mp4" => "video/mp4", ); // echo isset($content_types[pathinfo($fileName, PATHINFO_EXTENSION)]) ? $content_types[pathinfo($fileName, PATHINFO_EXTENSION)] : $c_type_default; return isset($content_types[pathinfo($fileName, PATHINFO_EXTENSION)]) ? $content_types[pathinfo($fileName, PATHINFO_EXTENSION)] : $c_type_default; } function output_file($file, $name) { /* This function takes a path to a file to output ($file), the filename that the browser will see ($name) and the MIME type of the file ($mime_type, optional). */ //Check the file premission if(!is_readable($file)) die('File not found or inaccessible!'); $size = filesize($file); $name = rawurldecode($name); //turn off output buffering to decrease cpu usage @ob_end_clean(); include('../includes/configg.php'); // Start Code For Total Downloaded Data Size by The LoggedIn User $user="select * from $TBusers where id=".$_SESSION['log_id']; $result_user = mysqli_query($conn, $user) ; $row = mysqli_fetch_assoc($result_user); $lastsotrage = $row['down']; $curr_date= $row['curr_date']; $today_date= date('d-m-y'); $daily_downloaded_data= $row['daily_downloaded_data']; if($curr_date != $today_date) { $update_curr_date="update $TBusers set curr_date ='$today_date', daily_downloaded_data =0 where id=".$_SESSION['log_id']; // Set Curr_date by Today Date For check Daily Downloaded Data Limit mysqli_query($conn,$update_curr_date) ; $daily_downloaded_data=0; } /*else { if($daily_downloaded_data>=(20*1024*1024*1024)){ // Check Daily Download Data Limit 20GB Exceed or not header('Location: http://idownload.club/members/download.php'); exit;} }*/ // required for IE, otherwise Content-Disposition may be ignored if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); header('Content-Type: ' . getMimeType($name)); header('Content-Disposition: attachment; filename="'.$name.'"'); header("Content-Transfer-Encoding: binary"); header('Accept-Ranges: bytes'); /* The three lines below basically make the download non-cacheable */ header("Cache-control: private"); header('Pragma: private'); header("Expires: 0"); // multipart-download and download resuming support if(isset($_SERVER['HTTP_RANGE'])) { list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2); list($range) = explode(",",$range,2); list($range, $range_end) = explode("-", $range); $range=intval($range); if(!$range_end) { $range_end=$size-1; } else { $range_end=intval($range_end); } $new_length = $range_end-$range+1; header("HTTP/1.1 206 Partial Content"); header("Content-Length: $new_length"); header("Content-Range: bytes $range-$range_end/$size"); } else { $new_length=$size; header("Content-Length: ".$size); } /* Will output the file itself */ $chunksize = 8*(1024*1024); //you may want to change this $bytes_send = 0; if ($file = fopen($file, 'r')) { if(isset($_SERVER['HTTP_RANGE'])) fseek($file, $range); while(!feof($file) && (!connection_aborted()) && ($bytes_send<$new_length) ) { $buffer = fread($file, $chunksize); print($buffer); //echo($buffer); // can also possible //flush(); $bytes_send += strlen($buffer); } fclose($file); $lastsotrage= $lastsotrage + $size; $daily_downloaded_data+=$size; $sql="update $TBusers set down =". $lastsotrage." where id=".$_SESSION['log_id']; $sql2="update $TBusers set daily_downloaded_data = $daily_downloaded_data where id=".$_SESSION['log_id']; $sql3= "update test set count=count+1 where id=1" ; mysqli_query($conn,$sql) ; mysqli_query($conn,$sql2) ;mysqli_query($conn,$sql3) ; file_put_contents('data.txt', print_r($_SERVER, true), FILE_APPEND); } else //If no permissiion die('Error - can not open file.'); //die die(); } //Set the time out set_time_limit(0); //path to the file $file_dir=$_GET['directory']; $file_name = str_replace("/", "", $_GET['file']); $file_name = str_replace("\\", "", $file_name); $file = $file_dir . "/".$file_name; //Call the download function with file path,file name and file type output_file($file, ''.$file_name.''); ?>
  2. I develop a PHP code and count how much data was downloaded by the client. My code is working fine if someone directly requests my file from a browser. But if someone installs a Mozilla extensions like ‘’downthemall’’ and then the url is requested by that extension then it requests the file URL 4 times so I get the downloaded data 4 times. How do I fix this? The same happened when the user is using jDownloader software or any software. <?php function getMimeType($fileName) { $c_type_default = "application/octet-stream"; $content_types = array( "exe" => "application/octet-stream", "zip" => "application/zip", "mp3" => "audio/mpeg", "mpg" => "video/mpeg", "avi" => "video/x-msvideo", "mp4" => "video/mp4", ); // echo isset($content_types[pathinfo($fileName, PATHINFO_EXTENSION)]) ? $content_types[pathinfo($fileName, PATHINFO_EXTENSION)] : $c_type_default; return isset($content_types[pathinfo($fileName, PATHINFO_EXTENSION)]) ? $content_types[pathinfo($fileName, PATHINFO_EXTENSION)] : $c_type_default; } function output_file($file, $name) { /* This function takes a path to a file to output ($file), the filename that the browser will see ($name) and the MIME type of the file ($mime_type, optional). */ //Check the file premission if(!is_readable($file)) die('File not found or inaccessible!'); $size = filesize($file); $name = rawurldecode($name); //turn off output buffering to decrease cpu usage @ob_end_clean(); include('../includes/configg.php'); // Start Code For Total Downloaded Data Size by The LoggedIn User $user="select * from $TBusers where id=".$_SESSION['log_id']; $result_user = mysqli_query($conn, $user) ; $row = mysqli_fetch_assoc($result_user); $lastsotrage = $row['down']; $curr_date= $row['curr_date']; $today_date= date('d-m-y'); $daily_downloaded_data= $row['daily_downloaded_data']; if($curr_date != $today_date) { $update_curr_date="update $TBusers set curr_date ='$today_date', daily_downloaded_data =0 where id=".$_SESSION['log_id']; // Set Curr_date by Today Date For check Daily Downloaded Data Limit mysqli_query($conn,$update_curr_date) ; $daily_downloaded_data=0; } /*else { if($daily_downloaded_data>=(20*1024*1024*1024)){ // Check Daily Download Data Limit 20GB Exceed or not header('Location: http://idownload.club/members/download.php'); exit;} }*/ // required for IE, otherwise Content-Disposition may be ignored if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); header('Content-Type: ' . getMimeType($name)); header('Content-Disposition: attachment; filename="'.$name.'"'); header("Content-Transfer-Encoding: binary"); header('Accept-Ranges: bytes'); /* The three lines below basically make the download non-cacheable */ header("Cache-control: private"); header('Pragma: private'); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // multipart-download and download resuming support if(isset($_SERVER['HTTP_RANGE'])) { list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2); list($range) = explode(",",$range,2); list($range, $range_end) = explode("-", $range); $range=intval($range); if(!$range_end) { $range_end=$size-1; } else { $range_end=intval($range_end); } $new_length = $range_end-$range+1; header("HTTP/1.1 206 Partial Content"); header("Content-Length: $new_length"); header("Content-Range: bytes $range-$range_end/$size"); } else { $new_length=$size; header("Content-Length: ".$size); } /* Will output the file itself */ $chunksize = 1*(1024*1024); //you may want to change this $bytes_send = 0; if ($file = fopen($file, 'r')) { if(isset($_SERVER['HTTP_RANGE'])) fseek($file, $range); while(!feof($file) && (!connection_aborted()) && ($bytes_send<$new_length) ) { $buffer = fread($file, $chunksize); print($buffer); //echo($buffer); // can also possible flush(); $bytes_send += strlen($buffer); } fclose($file); $lastsotrage= $lastsotrage + $size; $daily_downloaded_data+=$size; $sql="update $TBusers set down =". $lastsotrage." where id=".$_SESSION['log_id']; $sql2="update $TBusers set daily_downloaded_data = $daily_downloaded_data where id=".$_SESSION['log_id']; $sql3= "update test set count=count+1 where id=1" ; mysqli_query($conn,$sql) ; mysqli_query($conn,$sql2) ;mysqli_query($conn,$sql3) ; file_put_contents('data.txt', print_r($_SERVER, true), FILE_APPEND); } else //If no permissiion die('Error - can not open file.'); //die die(); } //Set the time out set_time_limit(0); //path to the file $file_dir=$_GET['directory']; $file_name = str_replace("/", "", $_GET['file']); $file_name = str_replace("\\", "", $file_name); $file = $file_dir . "/".$file_name; //Call the download function with file path,file name and file type output_file($file, ''.$file_name.''); ?>
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.