Jump to content

Php Image Upload Script


Orionsbelter

Recommended Posts

Hey all, so i have an image upload script i use however i would like to change the script so that instead of getting the file from an uploaded file it gets it from a url.

 

what would i need to change?

 


<?php
session_start();
$username=$_SESSION['username'];
include_once"../includes/db_connect.php";
$id=$_POST['id'];
$imageNum=$_POST['imageNum'];
//define a maxim size for the uploaded images in Kb
define ("MAX_SIZE","300"); 

//This function reads the extension of the file. It is used to determine if the file  is an image by checking the extension.
function getExtension($str) {
        $i = strrpos($str,".");
        if (!$i) { return ""; }
        $l = strlen($str) - $i;
        $ext = substr($str,$i+1,$l);
        return $ext;
}
//get the extension of the file in a lower case format
      $filename = stripslashes($_FILES['Image1']['name']);
  $extension = getExtension($filename);
 $extension = strtolower($extension);

 define( 'DESIRED_IMAGE_WIDTH', 902 );
 define( 'DESIRED_IMAGE_HEIGHT', 677 );

 $source_path = $_FILES[ 'Image1' ][ 'tmp_name' ];

//get the extension of the file and check if it is support or not
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
 {die('This file type is not support, you may only use PNG GIF and JPG files.');}

$size=filesize($_FILES['image']['tmp_name']);

if ($size > MAX_SIZE*1024){ die('The File Size Is Too Large!'); }

 //
 // Add file validation code here
 //

 list( $source_width, $source_height, $source_type ) = getimagesize( $source_path );

 switch ( $source_type )
 {
   case IMAGETYPE_GIF:
     $source_gdim = imagecreatefromgif( $source_path );
     break;

   case IMAGETYPE_JPEG:
     $source_gdim = imagecreatefromjpeg( $source_path );
     break;

   case IMAGETYPE_PNG:
     $source_gdim = imagecreatefrompng( $source_path );
     break;
 }

 $source_aspect_ratio = $source_width / $source_height;
 $desired_aspect_ratio = DESIRED_IMAGE_WIDTH / DESIRED_IMAGE_HEIGHT;

 if ( $source_aspect_ratio > $desired_aspect_ratio )
 {
   //
   // Triggered when source image is wider
   //
   $temp_height = DESIRED_IMAGE_HEIGHT;
   $temp_width = ( int ) ( DESIRED_IMAGE_HEIGHT * $source_aspect_ratio );
 }
 else
 {
   //
   // Triggered otherwise (i.e. source image is similar or taller)
   //
   $temp_width = DESIRED_IMAGE_WIDTH;
   $temp_height = ( int ) ( DESIRED_IMAGE_WIDTH / $source_aspect_ratio );
 }

 //
 // Resize the image into a temporary GD image
 //

 $temp_gdim = imagecreatetruecolor( $temp_width, $temp_height );
 imagecopyresampled(
   $temp_gdim,
   $source_gdim,
   0, 0,
   0, 0,
   $temp_width, $temp_height,
   $source_width, $source_height
 );

 //
 // Copy cropped region from temporary image into the desired GD image
 //

 $x0 = ( $temp_width - DESIRED_IMAGE_WIDTH ) / 2;
 $y0 = ( $temp_height - DESIRED_IMAGE_HEIGHT ) / 2;

 $desired_gdim = imagecreatetruecolor( DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT );
 imagecopy(
   $desired_gdim,
   $temp_gdim,
   0, 0,
   $x0, $y0,
   DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT
 );

 //
 // Render the image
 // Alternatively, you can save the image in file-system or database
 //
 $rand=rand(1000,100000);
$newname="$filename";
 if($extension == "jpg"){imagejpeg( $desired_gdim, "../images/products/$newname.jpg", 100);}
 if($extension == "gif"){imagegif( $desired_gdim, "../images/products/$newname.gif", 100);}
 if($extension == "png"){imagepng( $desired_gdim, "../images/products/$newname.png", 100);}
 mysql_query("UPDATE `products` SET $imageNum='$newname.$extension' WHERE id='$id'");
header("Location: upload.php?tn=1&id=$id");
 //
 // Add clean-up code here
 //

?>

Link to comment
https://forums.phpfreaks.com/topic/272461-php-image-upload-script/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.