Jump to content

Archived

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

kevdoug

upload image to server and url to database.

Recommended Posts

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.

[color=green]<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>[/color] 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

[color=red]<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>[/color]

and uploaderupdate.php files.

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

      echo $user;
     
?>[/color]

Share this post


Link to post
Share on other sites
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.

[code]<?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();
*/
?>
[/code]

any questions, just ask...

Share this post


Link to post
Share on other sites
[quote author=ozPATT link=topic=101907.msg403840#msg403840 date=1153922262]
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.

[code]<?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();
*/
?>
[/code]

any questions, just ask...
[/quote]

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

Share this post


Link to post
Share on other sites

×

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.