fengyuboy
New Members-
Posts
5 -
Joined
-
Last visited
Never
Profile Information
-
Gender
Not Telling
fengyuboy's Achievements
Newbie (1/5)
0
Reputation
-
Help! uploading function failure on a sftp server
fengyuboy replied to fengyuboy's topic in PHP Coding Help
[quote author=AndyB link=topic=106672.msg426814#msg426814 date=1157234168] Are write pernissions correctly set for the target folder? [/quote] Thanks, you are right, I got permissions set for the target folder, it is now fully functional. -
Help! uploading function failure on a sftp server
fengyuboy replied to fengyuboy's topic in PHP Coding Help
[url=http://www.mun.ca/bios/]http://www.mun.ca/bios/[/url] Here is the server information. -
Help! uploading function failure on a sftp server
fengyuboy replied to fengyuboy's topic in PHP Coding Help
[quote author=AndyB link=topic=106672.msg426814#msg426814 date=1157234168] Are write pernissions correctly set for the target folder? [/quote] how to set that? -
Help! uploading function failure on a sftp server
fengyuboy replied to fengyuboy's topic in PHP Coding Help
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] -
[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!