Jump to content


Photo

upload image to server and url to database.


  • Please log in to reply
2 replies to this topic

#1 kevdoug

kevdoug
  • Members
  • PipPip
  • Member
  • 23 posts

Posted 26 July 2006 - 11:16 AM

Hi as the subject says I am trying to upload an image to the server and at the same time add the url to the database. I have achieved both seperately but I am have difficulty combining them. Here is the code I am trying.

<form enctype="multipart/form-data" action="uploader.php" method="POST">

<input type="hidden" name="MAX_FILE_SIZE" value="100000000000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />

</form>
This the form to browse for image and pass it to the uploaderphp file which uploads the file to the server.

This is where I am struggling. I have the results from the upload form passed to the uploader.php page and I am trying to pass it onto the uploaderupdate.php but I am having no success in passing the variable stored as file.

Here are the uploader.php

<form name="load" action="uploaderupdate.php" method="post">
<?php

// Where the file is going to be placed
$target_path = "C:\kev\ ";

/* Add the original filename to our target path.  */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
    echo "The file ".  basename( $_FILES['uploadedfile']['name']).  " has been uploaded to folder $target_path";
}
   
else
{
    echo "There was an error uploading the file, please try again!";
}
$file = $target_path;
echo $file;

$file = 'file';
echo $file;
  ?>
  <tr>
<td><input type='hidden' name='file' /></td>

<td valign = "top"><input type="submit" name="submit" value="Add new photo"></td>
</tr>
      <?php
?>
</form>


and uploaderupdate.php files.

<?php
 
$user  = $_POST['file'];
$user  = strtoupper($user);

      echo $user;
     
?>


#2 ozPATT

ozPATT
  • Members
  • PipPip
  • Member
  • 15 posts

Posted 26 July 2006 - 01:57 PM

this is a cool class to do what you want... usage is at the bottom, and you can either upload with no validation, or with. pretty easy to get your head around, just copy all this into a file, call it something like class.fileupload.php, and include that in your page. then use the usage instructions at the bottom, wherever you want to use it.

<?php
  class Upload_Files {

	//vars
	var $temp_file_name;
	var $file_name;
	var $upload_dir;
	var $upload_log_dir;
	var $max_file_size;
	var $banned_array;
	var $ext_array;
    
	//Validation of file extensions
	function validate_extension() {
		//set vars
		$file_name 	= trim($this->file_name);
		$extension 	= strtolower(strchr($file_name, "."));
		$ext_array 	= $this->ext_array;
		$ext_count 	= count($ext_array);

		//start validation process
		if(!$file_name) {
			return false;
		}
		else {
			if(!$ext_array) {
				return true;
			}
			else {
				//put extensions into an array
				foreach($ext_array as $value) {
					$first_char = substr($value, 0, 1);
					if($first_char <> ".") {
						$extensions[] = "." . strtolower($value);
					}
					else {
						$extensions[] = strtolower($value);
					}
				}
		  
				//find out if the extension is valid
				foreach($extensions as $value) {
					if($value == $extension) {
						$valid_extension = true;
					}
				}
	  
				//is the $valid_extension variable present?
				if($valid_extension) {
					return true;
				}
				else {
					return false;
				}
			}
		}
	}

	//validation of file size
	function validate_size() {
		$temp_file_name 	= trim($this->temp_file_name);
		$max_file_size 		= trim($this->max_file_size);

		if($temp_file_name) {
			$size = filesize($temp_file_name);
			if($size > $max_file_size) {
				return false;
			}
			else {
				return true;
			}
		}
		else {
			return false;
		}
	}

	//does file already exist?
	function existing_file() {
		$file_name 	= trim($this->file_name);
		$upload_dir 	= $this->get_upload_directory();

		if($upload_dir == "ERROR") {
			return true;
		}
		else {
			$file = $upload_dir . $file_name;
			if(file_exists($file)) {
			return true;
			}
			else {
				return false;
			}
		}
	}

	//extract the file size
	function get_file_size() {
		$temp_file_name 	= trim($this->temp_file_name);
		$kb 				= 1024;
		$mb 			= 1024 * $kb;
		$gb 				= 1024 * $mb;
		$tb 				= 1024 * $gb;

		if($temp_file_name) {
			$size = filesize($temp_file_name);
			if($size < $kb) {
				$file_size = "$size Bytes";
			}
			elseif($size < $mb) {
				$final = round($size/$kb, 2);
				$file_size = "$final KB";
			}
			elseif($size < $gb) {
				$final = round($size/$mb, 2);
				$file_size = "$final MB";
			}
			elseif($size < $tb) {
				$final = round($size/$gb, 2);
				$file_size = "$final GB";
			}
			else {
				$final = round($size/$tb, 2);
				$file_size = "$final TB";
			}
		}
		else {
			$file_size = "ERROR NO FILE PASSED TO get_file_size()";
		}
		return $file_size;
	}

	//extract the max file size
	function get_max_size() {
		$max_file_size 	= trim($this->max_file_size);
		$kb 			= 1024;
		$mb 		= 1024 * $kb;
		$gb 			= 1024 * $mb;
		$tb 			= 1024 * $gb;

		if($max_file_size) {
			if($max_file_size < $kb) {
				$max_file_size = "$max_file_size Bytes";
			}
			elseif($max_file_size < $mb) {
				$final = round($max_file_size/$kb, 2);
				$max_file_size = "$final KB";
			}
			elseif($max_file_size < $gb) {
				$final = round($max_file_size/$mb, 2);
				$max_file_size = "$final MB";
			}
			elseif($max_file_size < $tb) {
				$final = round($max_file_size/$gb, 2);
				$max_file_size = "$final GB";
			}
			else {
				$final = round($max_file_size/$tb, 2);
				$max_file_size = "$final TB";
			}
		}
		else {
			$max_file_size = "ERROR: NO SIZE PARAMETER PASSED TO get_max_size()";
		}
		return $max_file_size;
	}

	//validation of the user
	function validate_user() {
		$banned_array 	= $this->banned_array;
		$ip           	= trim($_SERVER['REMOTE_ADDR']);
		$cpu          	= gethostbyaddr($ip);
		$count        	= count($banned_array);

		if($count < 1) {
			return true;
		}
		else {
			foreach($banned_array as $key => $value) {
				if($value == $ip . "-" . $cpu) {
					return false;
				}
				else {
					return true;
				}
			}
		}
	}

	//verify the upload directory
	function get_upload_directory() {
		$upload_dir = trim($this->upload_dir);

		if($upload_dir) {
			$ud_len = strlen($upload_dir);
			$last_slash = substr($upload_dir, $ud_len-1, 1);

			if($last_sleash <> "/") {
				$upload_dir = $upload_dir . "/";
			}
			else {
				$upload_dir = $upload_dir;
			}

			$handle = @opendir($upload_dir);
			if($handle) {
				$upload_dir = $upload_dir;
				closedir($handle);
			}
			else {
				$upload_dir = "ERROR";
			}
		}
		else {
			$upload_dir = "ERROR";
		}
		return $upload_dir;
	}

	//verify the upload log directory
	function get_upload_log_directory() {
		$upload_log_dir = trim($this->upload_log_dir);

		if($upload_log_dir) {
			$ud_len = strlen($upload_log_dir);
			$last_slash = substr($upload_log_dir, $ud_len-1, 1);

			if($last_slash <> "/") {
				$upload_log_dir = $upload_log_dir . "/";
			}
			else {
				$upload_log_dir = $upload_log_dir;
			}

			$handle = @opendir($upload_log_dir);
			if($handle) {
				$upload_log_dir = $upload_log_dir;
				closedir($handle);
			}
			else {
				$upload_log_dir = "ERROR";
			}
		}
		else {
			$upload_log_dir = "ERROR";
		}
		return $upload_log_dir;
	}

	//upload the file with no validation
	function upload_file_no_validation() {
		$temp_file_name 	= trim($this->temp_file_name);
		$file_name      		= trim(strtolower($this->file_name));
		$upload_dir     		= $this->get_upload_directory();
		$upload_log_dir 	= $this->get_upload_log_directory();
		$file_size      		= $this->get_file_size();
		$ip             		= trim($_SERVER['REMOTE_ADDR']);
		$cpu            		= gethostbyaddr($ip);
		$m              		= date("m");
		$d              		= date("d");
		$y              		= date("Y");
		$date           		= date("m/d/Y");
		$time           		= date("h:i:s A");

		if(($upload_dir == "ERROR") || ($upload_log_dir == "ERROR")) {
			return false;
		}
		else {
			if(is_uploaded_file($temp_file_name)) {
				if(move_uploaded_file($temp_file_name, $upload_dir . $_SESSION['uid'] . '_' . $file_name)) {
					$log = $upload_log_dir . $y . "_" . $m . "_" . $d . ".txt";
					$fp = fopen($log, "a+");
					fwrite($fp, "$ip-$cpu | $file_name | $file_size | $date | $time");
					fclose($fp);
					return true;
				}
				else {
					return false;
				}
			}
			else {
				return false;
			}
		}
	}

	//upload file with validation
	function upload_file_with_validation() {
		$temp_file_name 	= trim($this->temp_file_name);
		$file_name      		= trim(strtolower($this->file_name));
		$upload_dir     		= $this->get_upload_directory();
		$upload_log_dir 	= $this->get_upload_log_directory();
		$file_size      		= $this->get_file_size();
		$ip             		= trim($_SERVER['REMOTE_ADDR']);
		$cpu            		= gethostbyaddr($ip);
		$m              		= date("m");
		$d              		= date("d");
		$y              		= date("Y");
		$date           		= date("m/d/Y");
		$time           		= date("h:i:s A");
		$existing_file  		= $this->existing_file();
		$valid_user     		= $this->validate_user();
		$valid_size     		= $this->validate_size();
		$valid_ext     		= $this->validate_extension();
		
		if(($upload_dir == "ERROR") || ($upload_log_dir == "ERROR")) {
			return false;
		}
		elseif((((!$valid_user) || (!$valid_ext) || (!$valid_size) || ($existing_file)))) {
			return false;
		}
		
		else {
			if(is_uploaded_file($temp_file_name)) {
				if(move_uploaded_file($temp_file_name, $upload_dir . $file_name)) {
					$log = $upload_log_dir . $y . "_" . $m . "_" . $d . ".txt";
					$fp = fopen($log, "a+");
					fwrite($fp, "$ip-$cpu | $file_name | $file_size | $date | $time");
					fclose($fp);
					return true;
				}
				else {
					return false;
				}
			}
			else {
				return false;
			}
		}
	}
}

	//usage
	/*
	$upload_class = new Upload_Files;
	$upload_class->temp_file_name = trim($_FILES['upload']['tmp_name']);
	$upload_class->file_name = trim(strtolower($_FILES['upload']['name']));
	$upload_class->upload_dir = "uploads/";
	$upload_class->upload_log_dir = "uploads/upload_logs/";
	$upload_class->max_file_size = 524288;
	$upload_class->banned_array = array("");
	$upload_class->ext_array = array(".jpg", ".gif", ".jpeg", ".png");

	$valid_ext = $upload_class->validate_extension();
	$valid_size = $upload_class->validate_size();
	$validate_user = $upload_class->validate_user();
	$max_size = $upload_class->get_max_size();
	$file_size = $upload_class->get_file_size();
	$upload_directory= $upload_class->get_upload_directory();
	$upload_log_directory = $upload_class->get_upload_log_directory();
	$upload_file = $upload_class->upload_file_with_validation();
	*/
?>

any questions, just ask...

#3 kevdoug

kevdoug
  • Members
  • PipPip
  • Member
  • 23 posts

Posted 26 July 2006 - 02:32 PM

this is a cool class to do what you want... usage is at the bottom, and you can either upload with no validation, or with. pretty easy to get your head around, just copy all this into a file, call it something like class.fileupload.php, and include that in your page. then use the usage instructions at the bottom, wherever you want to use it.

<?php
  class Upload_Files {

	//vars
	var $temp_file_name;
	var $file_name;
	var $upload_dir;
	var $upload_log_dir;
	var $max_file_size;
	var $banned_array;
	var $ext_array;
    
	//Validation of file extensions
	function validate_extension() {
		//set vars
		$file_name 	= trim($this->file_name);
		$extension 	= strtolower(strchr($file_name, "."));
		$ext_array 	= $this->ext_array;
		$ext_count 	= count($ext_array);

		//start validation process
		if(!$file_name) {
			return false;
		}
		else {
			if(!$ext_array) {
				return true;
			}
			else {
				//put extensions into an array
				foreach($ext_array as $value) {
					$first_char = substr($value, 0, 1);
					if($first_char <> ".") {
						$extensions[] = "." . strtolower($value);
					}
					else {
						$extensions[] = strtolower($value);
					}
				}
		  
				//find out if the extension is valid
				foreach($extensions as $value) {
					if($value == $extension) {
						$valid_extension = true;
					}
				}
	  
				//is the $valid_extension variable present?
				if($valid_extension) {
					return true;
				}
				else {
					return false;
				}
			}
		}
	}

	//validation of file size
	function validate_size() {
		$temp_file_name 	= trim($this->temp_file_name);
		$max_file_size 		= trim($this->max_file_size);

		if($temp_file_name) {
			$size = filesize($temp_file_name);
			if($size > $max_file_size) {
				return false;
			}
			else {
				return true;
			}
		}
		else {
			return false;
		}
	}

	//does file already exist?
	function existing_file() {
		$file_name 	= trim($this->file_name);
		$upload_dir 	= $this->get_upload_directory();

		if($upload_dir == "ERROR") {
			return true;
		}
		else {
			$file = $upload_dir . $file_name;
			if(file_exists($file)) {
			return true;
			}
			else {
				return false;
			}
		}
	}

	//extract the file size
	function get_file_size() {
		$temp_file_name 	= trim($this->temp_file_name);
		$kb 				= 1024;
		$mb 			= 1024 * $kb;
		$gb 				= 1024 * $mb;
		$tb 				= 1024 * $gb;

		if($temp_file_name) {
			$size = filesize($temp_file_name);
			if($size < $kb) {
				$file_size = "$size Bytes";
			}
			elseif($size < $mb) {
				$final = round($size/$kb, 2);
				$file_size = "$final KB";
			}
			elseif($size < $gb) {
				$final = round($size/$mb, 2);
				$file_size = "$final MB";
			}
			elseif($size < $tb) {
				$final = round($size/$gb, 2);
				$file_size = "$final GB";
			}
			else {
				$final = round($size/$tb, 2);
				$file_size = "$final TB";
			}
		}
		else {
			$file_size = "ERROR NO FILE PASSED TO get_file_size()";
		}
		return $file_size;
	}

	//extract the max file size
	function get_max_size() {
		$max_file_size 	= trim($this->max_file_size);
		$kb 			= 1024;
		$mb 		= 1024 * $kb;
		$gb 			= 1024 * $mb;
		$tb 			= 1024 * $gb;

		if($max_file_size) {
			if($max_file_size < $kb) {
				$max_file_size = "$max_file_size Bytes";
			}
			elseif($max_file_size < $mb) {
				$final = round($max_file_size/$kb, 2);
				$max_file_size = "$final KB";
			}
			elseif($max_file_size < $gb) {
				$final = round($max_file_size/$mb, 2);
				$max_file_size = "$final MB";
			}
			elseif($max_file_size < $tb) {
				$final = round($max_file_size/$gb, 2);
				$max_file_size = "$final GB";
			}
			else {
				$final = round($max_file_size/$tb, 2);
				$max_file_size = "$final TB";
			}
		}
		else {
			$max_file_size = "ERROR: NO SIZE PARAMETER PASSED TO get_max_size()";
		}
		return $max_file_size;
	}

	//validation of the user
	function validate_user() {
		$banned_array 	= $this->banned_array;
		$ip           	= trim($_SERVER['REMOTE_ADDR']);
		$cpu          	= gethostbyaddr($ip);
		$count        	= count($banned_array);

		if($count < 1) {
			return true;
		}
		else {
			foreach($banned_array as $key => $value) {
				if($value == $ip . "-" . $cpu) {
					return false;
				}
				else {
					return true;
				}
			}
		}
	}

	//verify the upload directory
	function get_upload_directory() {
		$upload_dir = trim($this->upload_dir);

		if($upload_dir) {
			$ud_len = strlen($upload_dir);
			$last_slash = substr($upload_dir, $ud_len-1, 1);

			if($last_sleash <> "/") {
				$upload_dir = $upload_dir . "/";
			}
			else {
				$upload_dir = $upload_dir;
			}

			$handle = @opendir($upload_dir);
			if($handle) {
				$upload_dir = $upload_dir;
				closedir($handle);
			}
			else {
				$upload_dir = "ERROR";
			}
		}
		else {
			$upload_dir = "ERROR";
		}
		return $upload_dir;
	}

	//verify the upload log directory
	function get_upload_log_directory() {
		$upload_log_dir = trim($this->upload_log_dir);

		if($upload_log_dir) {
			$ud_len = strlen($upload_log_dir);
			$last_slash = substr($upload_log_dir, $ud_len-1, 1);

			if($last_slash <> "/") {
				$upload_log_dir = $upload_log_dir . "/";
			}
			else {
				$upload_log_dir = $upload_log_dir;
			}

			$handle = @opendir($upload_log_dir);
			if($handle) {
				$upload_log_dir = $upload_log_dir;
				closedir($handle);
			}
			else {
				$upload_log_dir = "ERROR";
			}
		}
		else {
			$upload_log_dir = "ERROR";
		}
		return $upload_log_dir;
	}

	//upload the file with no validation
	function upload_file_no_validation() {
		$temp_file_name 	= trim($this->temp_file_name);
		$file_name      		= trim(strtolower($this->file_name));
		$upload_dir     		= $this->get_upload_directory();
		$upload_log_dir 	= $this->get_upload_log_directory();
		$file_size      		= $this->get_file_size();
		$ip             		= trim($_SERVER['REMOTE_ADDR']);
		$cpu            		= gethostbyaddr($ip);
		$m              		= date("m");
		$d              		= date("d");
		$y              		= date("Y");
		$date           		= date("m/d/Y");
		$time           		= date("h:i:s A");

		if(($upload_dir == "ERROR") || ($upload_log_dir == "ERROR")) {
			return false;
		}
		else {
			if(is_uploaded_file($temp_file_name)) {
				if(move_uploaded_file($temp_file_name, $upload_dir . $_SESSION['uid'] . '_' . $file_name)) {
					$log = $upload_log_dir . $y . "_" . $m . "_" . $d . ".txt";
					$fp = fopen($log, "a+");
					fwrite($fp, "$ip-$cpu | $file_name | $file_size | $date | $time");
					fclose($fp);
					return true;
				}
				else {
					return false;
				}
			}
			else {
				return false;
			}
		}
	}

	//upload file with validation
	function upload_file_with_validation() {
		$temp_file_name 	= trim($this->temp_file_name);
		$file_name      		= trim(strtolower($this->file_name));
		$upload_dir     		= $this->get_upload_directory();
		$upload_log_dir 	= $this->get_upload_log_directory();
		$file_size      		= $this->get_file_size();
		$ip             		= trim($_SERVER['REMOTE_ADDR']);
		$cpu            		= gethostbyaddr($ip);
		$m              		= date("m");
		$d              		= date("d");
		$y              		= date("Y");
		$date           		= date("m/d/Y");
		$time           		= date("h:i:s A");
		$existing_file  		= $this->existing_file();
		$valid_user     		= $this->validate_user();
		$valid_size     		= $this->validate_size();
		$valid_ext     		= $this->validate_extension();
		
		if(($upload_dir == "ERROR") || ($upload_log_dir == "ERROR")) {
			return false;
		}
		elseif((((!$valid_user) || (!$valid_ext) || (!$valid_size) || ($existing_file)))) {
			return false;
		}
		
		else {
			if(is_uploaded_file($temp_file_name)) {
				if(move_uploaded_file($temp_file_name, $upload_dir . $file_name)) {
					$log = $upload_log_dir . $y . "_" . $m . "_" . $d . ".txt";
					$fp = fopen($log, "a+");
					fwrite($fp, "$ip-$cpu | $file_name | $file_size | $date | $time");
					fclose($fp);
					return true;
				}
				else {
					return false;
				}
			}
			else {
				return false;
			}
		}
	}
}

	//usage
	/*
	$upload_class = new Upload_Files;
	$upload_class->temp_file_name = trim($_FILES['upload']['tmp_name']);
	$upload_class->file_name = trim(strtolower($_FILES['upload']['name']));
	$upload_class->upload_dir = "uploads/";
	$upload_class->upload_log_dir = "uploads/upload_logs/";
	$upload_class->max_file_size = 524288;
	$upload_class->banned_array = array("");
	$upload_class->ext_array = array(".jpg", ".gif", ".jpeg", ".png");

	$valid_ext = $upload_class->validate_extension();
	$valid_size = $upload_class->validate_size();
	$validate_user = $upload_class->validate_user();
	$max_size = $upload_class->get_max_size();
	$file_size = $upload_class->get_file_size();
	$upload_directory= $upload_class->get_upload_directory();
	$upload_log_directory = $upload_class->get_upload_log_directory();
	$upload_file = $upload_class->upload_file_with_validation();
	*/
?>

any questions, just ask...


Thanks ozPATT but I need it for a project and need to be able explain the code.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users