Saturday 12 July 2014

How to download image from server to local using database.



If you want that user can download your images that was uploaded by the other user.

For that this could will help you :

<?php

function output_file($file, $name, $mime_type='')

{

 if(!is_readable($file)) die('File not found or inaccessible!');

 $size = filesize($file);

 $name = rawurldecode($name);

 $known_mime_types=array(

    "htm" => "text/html",

    "exe" => "application/octet-stream",

    "zip" => "application/zip",

    "doc" => "application/msword",

    "jpg" => "image/jpg",

    "php" => "text/plain",

    "xls" => "application/vnd.ms-excel",

    "ppt" => "application/vnd.ms-powerpoint",

    "gif" => "image/gif",

    "pdf" => "application/pdf",

    "txt" => "text/plain",

    "html"=> "text/html",

    "png" => "image/png",

    "jpeg"=> "image/jpg"

 );

 

 if($mime_type==''){

     $file_extension = strtolower(substr(strrchr($file,"."),1));

     if(array_key_exists($file_extension, $known_mime_types)){

        $mime_type=$known_mime_types[$file_extension];

     } else {

        $mime_type="application/force-download";

     };

 };

 

 //turn off output buffering to decrease cpu usage

 @ob_end_clean(); 

 

 // required for IE, otherwise Content-Disposition may be ignored

 if(ini_get('zlib.output_compression'))

 ini_set('zlib.output_compression', 'Off');

 header('Content-Type: ' . $mime_type);

 header('Content-Disposition: attachment; filename="'.$name.'"');

 header("Content-Transfer-Encoding: binary");

 header('Accept-Ranges: bytes');

 

 // 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);

        echo($buffer); 

        flush();

        $bytes_send += strlen($buffer);

    }

 fclose($file);

 } else

 //If no permissiion

 die('Error - can not open file.');

 //die

die();

}


//Set the time out

set_time_limit(0);


$host = "database_host_name"; 

$db_user = "database_user_name"; 

$db_pwd = "database_password";

$db_name = "database_name";

$con = mysqli_connect($host,$db_user,$db_pwd,$db_name);


$filename = "";

$sqlimg = mysqli_query($con,"Select img from table_name");

if($rowimg = mysqli_fetch_array($sqlimg)){
         $filename = $rowimg[0];
}

//Call the download function with file path,file name and file type

if($filename!="")
{

    output_file($file_path, ''.$filename.'', 'text/plain');

}

?>

How to restore mysql database using PHP script

If you want to restore your database with all tables and their data using the code of PHP this will helps you.

Here is the example of Database Restore PHP Script :

<?php

if(isset($_POST['submit'])) //Set Click event on form load

{

$host = "database_host_name"; 

$db_user = "database_user_name"; 

$db_pwd = "database_password";

$db_name = "database_name";

error_reporting(0);

ini_set('memory_limit','128M'); 

$db = mysqli_connect($host,$db_user,$db_pwd,$db_name);


       

        //File name you want to upload.

$filename = $_FILES["filemainname"]["name"]; 


$fp = fopen($filename, 'r' );

$fetchData = fread($fp, filesize($filename));

$sqlInfo = explode(";\n", $fetchData);

foreach ($sqlInfo AS $sqlData )

{

$datad = mysqli_query($db,$sqlData);

}

echo 'Done';

}

?>


<form action="index.php" method="post" enctype="multipart/form-data">

<label for="file">Filename:</label>

<input type="file" name="filemainname" id="filemainname"><br>

<input type="submit" name="submit" value="Submit">

</form>