Hello, I was curious if someone would help me alter this class so that instead of using it to upload images... I could send it a full URL path to an image, and it would save it to my server...
Thanks, Joe Class --------------- <?php class upload { // class variable var $file_permitted; // array MIME type of the permetted file var $archive_dir; // upload directory var $max_filesize; // max size of file upload // constructor // input: $max_fil = max size of file upload default -> 300 kbyte // $file_perm = array with mime/type of files to upload default -> jpg, png, gif // $arc_dir = destination dir of the upload file default -> ditectory corrente function upload ( $file_perm , $max_fil = 300000, $arc_dir = ".." ) { if ( empty ($file_perm) ) $file_perm = array ("image/pjpeg","image/x-png","image/jpeg","image/png"); $this->file_permitted = $file_perm; // set mime/type of files to upload $this->max_filesize = $max_fil; // set max size of file upload $this->archive_dir = $arc_dir; // set destination dir of the upload file } // upload method // input: $file = name of the FILE filed on the FORM function putFile ( $file ) { $userfile_type = strtok ( $_FILES[$file]['type'], ";"); // clear file type: MIME TYPE $userfile_name = $_FILES[$file]['name']; // set the original file name $userfile_size = $_FILES[$file]['size']; // set the file uploaded dimension $userfile = $_FILES[$file]['tmp_name']; // file uploaded in the temp dir $error = "This file type is not permitted: $userfile_type<br>"; // set the error message // if the file is in the list of MIME TYPE permetted // set the error to empty string $file_permitted = $this->file_permitted; foreach ( $file_permitted as $permitted ) { if ( $userfile_type == $permitted ) $error = ""; } // if filesize is <= 0 or > $max_filesize // set the error message //if ( ($userfile_size <= 0) || ($userfile_size > $this->max_filesize) ) $error = "File size error: $userfile_size Kb.<br>"; // if no error occured, start coping file if ( $error == "" ) { $filename = basename ($userfile_name); // extract file name if (!empty ($this->archive_dir) ) $destination = $this->archive_dir."/".$filename; // full destination path to images dir else $destination = $filename; // full destination path to images dir // check id a fale eith the same name exist // if exist, add a random number to the file name if ( file_exists($destination) ) { srand((double)microtime()*1000000); // random number inizializzation $filename = rand(0,20000).$filename; // add number to file name if (!empty ($this->archive_dir) ) $destination = $this->archive_dir."/".$filename; // full destination path to images dir else $destination = $filename; // full destination path to images dir } // Do some additional checks if(!is_uploaded_file($userfile)) die ("File $userfile_name is not uploaded correctly."); // copy file to temp dir to destination fir and removee the temp file if ( [EMAIL PROTECTED] ($userfile,$destination) ) die ("Impossible to copy $userfile_name from $userfile to destination directory."); return $destination; // return the full path of the file on file system of the server } else { echo $error; return false; } } // check to see what version (if any) of the gd libraries are installed function chkgd2() { $testGD = get_extension_funcs("gd"); // Grab function list if (!$testGD) { echo "GD not even installed."; return false; } else { return "gd2"; // if find the string return gd2 } } // resize method function resize_jpeg( $image_file_path, $new_image_file_path, $max_width=480, $max_height=1600 ) { $return_val = 1; // create new image if(eregi("\.png$",$image_file_path)) // if is a png { $return_val = ( ($img = ImageCreateFromPNG ( $image_file_path )) && $return_val == 1 ) ? "1" : "0"; } if(eregi("\.(jpg|jpeg)$",$image_file_path)) // if is a jpg { $return_val = ( ($img = ImageCreateFromJPEG ( $image_file_path )) && $return_val == 1 ) ? "1" : "0"; } $FullImage_width = imagesx ($img); // original width $FullImage_height = imagesy ($img); // original width // now we check for over-sized images and pare them down // to the dimensions we need for display purposes $ratio = ( $FullImage_width > $max_width ) ? (real)($max_width / $FullImage_width) : 1 ; $new_width = ((int)($FullImage_width * $ratio)); //full-size width $new_height = ((int)($FullImage_height * $ratio)); //full-size height //check for images that are still too high $ratio = ( $new_height > $max_height ) ? (real)($max_height / $new_height) : 1 ; $new_width = ((int)($new_width * $ratio)); //mid-size width $new_height = ((int)($new_height * $ratio)); //mid-size height // --Start Full Creation, Copying-- // now, before we get silly and 'resize' an image that doesn't need it... if ( $new_width == $FullImage_width && $new_height == $FullImage_height ) copy ( $image_file_path, $new_image_file_path ); // check to see if gd2+ libraries are compiled with php $gd_version = ( $this->chkgd2() ); if ( $gd_version == "gd2" ) { $full_id = ImageCreateTrueColor ( $new_width , $new_height ); //Crea un'immagine ImageCopyResampled ( $full_id, $img, 0,0,0,0, $new_width, $new_height, $FullImage_width, $FullImage_height ); } elseif ( $gd_version == "gd" ) { $full_id = ImageCreate ( $new_width , $new_height ); //Crea un'immagine ImageCopyResized ( $full_id, $img, 0,0,0,0, $new_width, $new_height, $FullImage_width, $FullImage_height ); } else "GD Image Library is not installed."; if(eregi("\.(jpg|jpeg)$",$image_file_path)) { $return_val = ( $full = ImageJPEG( $full_id, $new_image_file_path, 80 ) && $return_val == 1 ) ? "1" : "0"; } if(eregi("\.png$",$image_file_path)) { $return_val = ( $full = ImagePNG( $full_id, $new_image_file_path ) && $return_val == 1 ) ? "1" : "0"; } ImageDestroy( $full_id ); // --End Creation, Copying-- return ($return_val) ? TRUE : FALSE ; } // thumbnail creation // input: $image_path = path to image to resize // $path = destination dir of the thumbnails // $larghezza = thumbnails witdh default -> 80 pixel // $altezza = thumbnails height default -> 80 pixel // $pre_name = pre file string for thumbs default -> "thumb_" function miniatura ( $image_path, $path, $larghezza=80, $altezza=80, $pre_name="thumb_" ) { if ( (eregi("\.png$", $image_path) || eregi("\.(jpg|jpeg)$", $image_path)) && $image_path ) { $image_name = basename ( $image_path ); if (!empty ($path) ) $thumb_path = $path."/".$pre_name.$image_name; // complete path to thumbnail dir else $thumb_path = $pre_name.$image_name; // complete path to thumbnail dir if ( $this->resize_jpeg($image_path, $thumb_path, $larghezza, $altezza) ) return $thumb_path; else return "Errore nella creazione della miniatura<BR>"; } elseif ($image_path) return "Impossibile creare la Miniatura da questo tipo di file<BR>"; elseif ($send && $image_path) return "<font face=\"Verdana\" size=\"2\" color=\"red\"><b>Errore nel caricamento dell''immagine $cont</b></font><br>"; } function splitFilePath ( $completePath = "null/null" ) { $filePath = array ( path=>"", filename=>"" ) ; $tok = strtok($completePath,"/"); while ($tok) { $file_name = $tok; $tok = strtok("/"); } // end while $path = str_replace ( $file_name, "", $completePath ); $filePath[path] = $path; $filePath[filename] = $file_name; return $filePath; } } ?> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php