Hi, In this tutorial, I am going to teach you how to save the image from url directly.
Suppose in your web application user picture to be taken from the external URL. for example if a user signup / login using facebook in this case user profile picture url is return from the facebook. then you have to save the image from the external source in this situation we can use this logic.
saveimage.php
Download
Suppose in your web application user picture to be taken from the external URL. for example if a user signup / login using facebook in this case user profile picture url is return from the facebook. then you have to save the image from the external source in this situation we can use this logic.
saveimage.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | <?php error_reporting (0); function check_cURL() { if (in_array( 'curl' , get_loaded_extensions())) { return true; } else { return false; } } function mime_content_type( $filename ) { $mime_types = array ( 'txt' => 'text/plain' , 'htm' => 'text/html' , 'html' => 'text/html' , 'php' => 'text/html' , 'css' => 'text/css' , 'js' => 'application/javascript' , 'json' => 'application/json' , 'xml' => 'application/xml' , 'swf' => 'application/x-shockwave-flash' , 'flv' => 'video/x-flv' , // images 'png' => 'image/png' , 'jpe' => 'image/jpeg' , 'jpeg' => 'image/jpeg' , 'jpg' => 'image/jpeg' , 'gif' => 'image/gif' , 'bmp' => 'image/bmp' , 'ico' => 'image/vnd.microsoft.icon' , 'tiff' => 'image/tiff' , 'tif' => 'image/tiff' , 'svg' => 'image/svg+xml' , 'svgz' => 'image/svg+xml' , // archives 'zip' => 'application/zip' , 'rar' => 'application/x-rar-compressed' , 'exe' => 'application/x-msdownload' , 'msi' => 'application/x-msdownload' , 'cab' => 'application/vnd.ms-cab-compressed' , // audio/video 'mp3' => 'audio/mpeg' , 'qt' => 'video/quicktime' , 'mov' => 'video/quicktime' , // adobe 'pdf' => 'application/pdf' , 'psd' => 'image/vnd.adobe.photoshop' , 'ai' => 'application/postscript' , 'eps' => 'application/postscript' , 'ps' => 'application/postscript' , // ms office 'doc' => 'application/msword' , 'rtf' => 'application/rtf' , 'xls' => 'application/vnd.ms-excel' , 'ppt' => 'application/vnd.ms-powerpoint' , // open office 'odt' => 'application/vnd.oasis.opendocument.text' , 'ods' => 'application/vnd.oasis.opendocument.spreadsheet' ); $ext = strtolower ( array_pop ( explode ( '.' , $filename ))); if ( array_key_exists ( $ext , $mime_types )) { return $mime_types [ $ext ]; } elseif (function_exists( 'finfo_open' )) { $finfo = finfo_open(FILEINFO_MIME); $mimetype = finfo_file( $finfo , $filename ); finfo_close( $finfo ); return $mimetype ; } else { return 'application/octet-stream' ; } } function getimg( $url ) { $headers [] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg' ; $headers [] = 'Connection: Keep-Alive' ; $headers [] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8' ; $useragent = 'php' ; $process = curl_init( $url ); curl_setopt( $process , CURLOPT_HTTPHEADER, $headers ); curl_setopt( $process , CURLOPT_HEADER, 0); curl_setopt( $process , CURLOPT_USERAGENT, $useragent ); curl_setopt( $process , CURLOPT_TIMEOUT, 30); curl_setopt( $process , CURLOPT_RETURNTRANSFER, 1); curl_setopt( $process , CURLOPT_FOLLOWLOCATION, 1); $return = curl_exec( $process ); curl_close( $process ); return $return ; } function check_url_exist( $url ) { $handle = curl_init( $url ); if (false === $handle ) { return false; } curl_setopt( $handle , CURLOPT_HEADER, false); curl_setopt( $handle , CURLOPT_FAILONERROR, true); // this works curl_setopt( $handle , CURLOPT_NOBODY, true); curl_setopt( $handle , CURLOPT_RETURNTRANSFER, false); $connectable = curl_exec( $handle ); curl_close( $handle ); return $connectable ; } if (isset( $_POST [ 'link' ])) { if (check_cURL()) { $imgurl = $_POST [ 'link' ]; if (check_url_exist( $imgurl )) { $file_type = mime_content_type( $imgurl ); if (preg_match( "/image/i" , $file_type )) { $imagename = basename ( $imgurl ); if ( file_exists ( './tmp/' . $imagename )) { $text_message = 'This file exist!' ; } else { $image = getimg( $imgurl ); file_put_contents ( 'tmp/' . $imagename , $image ); $text_message = 'This file saved! Click <a href="./tmp/' . $imagename . '" target="_blank">here</a> to see your image.' ; } } else { $text_message = 'This file is not an image. Please check again!' ; } } else { $text_message = 'This link is a broken link. Please check again!' ; } } else { $text_message = "cURL is NOT <span style=\"color:red\">installed</span> on this server" ; } } ?> <html> <head> <title>Save image from url directly on your server</title> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> <link rel= "stylesheet" href= "//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" > <script src= "//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" ></script> <script src= "//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js" ></script> </head> <body> <div class = "container" > <div class = "row" > <p align= "center" ><span style= "font-size:30px" >SAVE IMAGE</span></p> <p align= "center" >We only support for image format.</p> <div align= "center" class = "col-sm-16" style= "margin: 20px 0px;" > <?php if (isset( $_POST [ 'link' ])) { ?> <p style= "color: red;font-size: 20px;" ><?php echo $text_message ; ?></p> <?php } ?> <form method= "post" class = "link_video" > <label for = "link-image" >Link:</label> <input style= "width:300px;" type= "text" name= "link" id= "link-image" value= "" placeholder= "image.jpg" > <input type= "submit" value= "GRAB" class = "btn btn-success" > </form> </div> </div> </div> </body> </html> |
Download
* If you like this post please don’t forget to subscribe Techies Badi - programming blog for more useful stuff