fengyuboy Posted September 2, 2006 Share Posted September 2, 2006 [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! Quote Link to comment Share on other sites More sharing options...
AndyB Posted September 2, 2006 Share Posted September 2, 2006 Are write pernissions correctly set for the target folder? Quote Link to comment Share on other sites More sharing options...
fengyuboy Posted September 2, 2006 Author Share Posted September 2, 2006 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 #1function 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 #2function 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 #3function 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 #4function 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 #5function 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 #6function 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 #7function 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] Quote Link to comment Share on other sites More sharing options...
fengyuboy Posted September 2, 2006 Author Share Posted September 2, 2006 [quote author=AndyB link=topic=106672.msg426814#msg426814 date=1157234168]Are write pernissions correctly set for the target folder?[/quote]how to set that? Quote Link to comment Share on other sites More sharing options...
fengyuboy Posted September 2, 2006 Author Share Posted September 2, 2006 [url=http://www.mun.ca/bios/]http://www.mun.ca/bios/[/url] Here is the server information. Quote Link to comment Share on other sites More sharing options...
fengyuboy Posted September 4, 2006 Author Share Posted September 4, 2006 [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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.