Jump to content

Help! uploading function failure on a sftp server


fengyuboy

Recommended Posts

[code] //Function #10 (Upload The File With Validation)
function upload_file_with_validation() {
    //SECTION #1
    $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();    //<-Add On
    $valid_user = $this->validate_user();        //<-Add On
    $valid_size = $this->validate_size();        //<-Add On
    $valid_ext = $this->validate_extension();    //<-Add On

    //SECTION #2
    if (($upload_dir == "ERROR") OR ($upload_log_dir == "ERROR")) {
echo "upload directory failure or upload log directory failure";
        return false;
    }
    elseif ((((!$valid_user) OR (!$valid_size) OR (!$valid_ext) OR ($existing_file)))) {
echo "invalid user, invalid size, invalid extension, existing file";
        return false;
    } else {
        if (is_uploaded_file($temp_file_name)) {
echo $temp_file_name.$upload_dir. $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 {
echo "move file failure";
                return false;
            }
        } else {
echo "is not uploaded";
            return false;
        }
    }
}
}

$upload_class = new Upload_Files;
$Name_test = trim($_FILES['upload']['tmp_name']);
$upload_class->temp_file_name = trim($_FILES['upload']['tmp_name']);
$upload_class->file_name = trim(strtolower($_FILES['upload']['name']));
$upload_class->upload_dir = "/info/www/docs/bios/uploads/";
$upload_class->upload_log_dir = "/info/www/docs/bios/uploads/upload_logs";
$upload_class->max_file_size = 512000;
$upload_class->banned_array = array("");
$upload_class->ext_array = array(".jpg",".jpeg",".gif",".png");
[/code]

Here is part of the code(from the file uploading class tutorial),
I tested this code on a sftp server, and the file could not be uploaded due to the move_uploaded_file() function fails. I guess there are some restrictions on the server. I have the login username and password, Is there anyway that I can put that in my code to enable file uploading?Just like a piece of code to enable uploading and downloading by logging in the sftp server.

Thanks!
Link to comment
Share on other sites

Here is the full code, file uploading class of the PHP freak tutorial.[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>imagevalidation</title>
</head>
<?php
class Upload_Files
{
   var $temp_file_name;
   var $file_name;
   var $upload_dir;
   var $upload_log_dir;
   var $max_file_size;
   var $banned_array;
   var $ext_array;

//Function #1
function validate_extension()
{
   //SECTION #1
   $file_name = trim($this->file_name);
   $extension = strtolower(strrchr($file_name,"."));
   $ext_array = $this->ext_array;
   $ext_count = count($ext_array);
   //SECTION #2
   if (!$file_name) {
       return false;
   } else {
       if (!$ext_array) {
           return true;
       } else {
           foreach ($ext_array as $value) {
               $first_char = substr($value,0,1);
                   if ($first_char <> ".") {
                       $extensions[] = ".".strtolower($value);
                   } else {
                       $extensions[] = strtolower($value);
                   }

           }

           //SECTION #3
           foreach ($extensions as $value) {
               if ($value == $extension) {
                   $valid_extension = "TRUE";
               }                
           }

           //SECTION #4
           if ($valid_extension) {
               return true;
           } else {
               return false;
           }
       }
   }
}
//Function #2
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;
   }    
}
//Function #3
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;
       }
   }    
}
//Function #4
function get_file_size() {
   //SECTION #1
   $temp_file_name = trim($this->temp_file_name);
   $kb = 1024;
   $mb = 1024 * $kb;
   $gb = 1024 * $mb;
   $tb = 1024 * $gb;

       //SECTION #2
       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;
}
//Function #5
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;
}
//Function #6
function validate_user() {
   //SECTION #1
   $banned_array = $this->banned_array;
   $ip = trim($_SERVER['REMOTE_ADDR']);
   $cpu = gethostbyaddr($ip);
   $count = count($banned_array);

   //SECTION #2
   if ($count < 1) {
       return true;
   } else {
       foreach($banned_array as $key => $value) {
           if ($value == $ip ."-". $cpu) {
               return false;
           } else {
               return true;
           }
       }
   }
}
//Function #7
function get_upload_directory() {
   //SECTION #1
   $upload_dir = trim($this->upload_dir);

   //SECTION #2
   if ($upload_dir) {
       $ud_len = strlen($upload_dir);
       $last_slash = substr($upload_dir,$ud_len-1,1);
           if ($last_slash <> "/") {
               $upload_dir = $upload_dir."/";
           } else {
                   $upload_dir = $upload_dir;
           }

       //SECTION #3
       $handle = @opendir($upload_dir);
           if ($handle) {
               $upload_dir = $upload_dir;
               closedir($handle);
           } else {
               $upload_dir = "ERROR";
echo "open directory failure";
           }
   } else {
       $upload_dir = "ERROR";
   }
   return $upload_dir;
}
//Function #8 (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;
}

//Function #9 (Upload The File With No Validation)
function upload_file_no_validation() {
   //SECTION #1
   $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");

   //SECTION #2
   if (($upload_dir == "ERROR") OR ($upload_log_dir == "ERROR")) {
       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;
       }
   }
}

//Function #10 (Upload The File With Validation)
function upload_file_with_validation() {
   //SECTION #1
   $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();    //<-Add On
   $valid_user = $this->validate_user();        //<-Add On
   $valid_size = $this->validate_size();        //<-Add On
   $valid_ext = $this->validate_extension();    //<-Add On

   //SECTION #2
   if (($upload_dir == "ERROR") OR ($upload_log_dir == "ERROR")) {
echo "upload directory failure or upload log directory failure";
       return false;
   }
   elseif ((((!$valid_user) OR (!$valid_size) OR (!$valid_ext) OR ($existing_file)))) {
echo "invalid user, invalid size, invalid extension, existing file";
       return false;
   } else {
       if (is_uploaded_file($temp_file_name)) {
echo $temp_file_name.$upload_dir. $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 {
echo "move file failure";
               return false;
           }
       } else {
echo "is not uploaded";
           return false;
       }
   }
}
}
//calling functions

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

$valid_ext = $upload_class->validate_extension();
$valid_user = $upload_class->validate_user();
$max_size = $upload_class->get_max_size();
$file_size = $upload_class->get_file_size();
$file_exists = $upload_class->existing_file();
$valid_size = $upload_class->validate_size();

   if (!$valid_ext) {
       $result = "The file extension is invalid, please try again!";
   }
   elseif (!$valid_size) {
       $result = "The file size is invalid, please try again! The maximum file size is: $max_size and your file was: $file_size";
   }
   elseif (!$valid_user) {
       $result = "You have been banned from uploading to this server.";
   }
   elseif ($file_exists) {
       $result = "This file already exists on the server, please try again.";
   } else {
       $upload_file = $upload_class->upload_file_with_validation();
       if (!$upload_file) {
           $result = "Your file could not be uploaded!";
       } else {
           $result = "Your file has been successfully uploaded to the server.";
       }
   }

echo $result."<br/>";
include("menu.inc");
echo " to go back to the picture uploading page";



?>
<body>
</body>
</html>
[/code]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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