GrdLock Posted April 1, 2010 Share Posted April 1, 2010 This script is uploading a file to my website. It uploads the file, and stores information in a .desc file as well. It works fine, but now I'm trying to add the MD5 hash of the file to the .desc file as well. Here's my upload script now: case 'upload'; $message = $mess[40]; $userfile = getFilesVar('userfile'); $userfile_name = $userfile['name']; $userfile_size = $userfile['size']; $destination = $uploads_folder_name."/$directory"; if (!$grants[$user_status][uPLOAD]) { place_header(sprintf($mess[49], "<b>$userfile_name</b>")); show_contents(); break; } if (!is_path_safe($directory, $userfile_name)) { place_header(sprintf($mess[49], "<b>$userfile_name</b>")); show_contents(); break; } if ($userfile_name == '') { $message = $mess[34]; } if ($userfile_size != 0) { $size_kb = $userfile_size/1024; } else { $message = $mess[34]; $size_kb = 0; } // Get the daily amount of bytes written $day_size = get_dayload(); // get the monthly amount of bytes written $month_size = get_monthload(); if ($userfile_name != '' && $userfile_size !=0) { $userfile_name = normalize_filename($userfile_name); // Try if file exists Or file is script if (file_exists("$destination/$userfile_name") || eregi($rejectedfiles, $userfile_name) || ($size_kb > $max_allowed_filesize) || (($max_daily_mb > 0) && (($userfile_size+$day_size) > ($max_daily_mb*1024*1024))) || (($max_monthly_mb > 0) && (($userfile_size+$month_size) >($max_monthly_mb*1024*1024)))) { if (($max_daily_mb > 0) && (($userfile_size+$day_size) > ($max_daily_mb*1024*1024))) { $message="$mess[210]"; } else if (($max_monthly_mb > 0) && (($userfile_size+$month_size) >($max_monthly_mb*1024*1024))) { $message="$mess[211]"; } else { if ($size_kb > $max_allowed_filesize) $message="$mess[38] <b>$userfile_name</b> $mess[50] ($max_allowed_filesize Kb)!"; else { if (eregi($rejectedfiles, $userfile_name)) // If file is script $message=sprintf($mess[49], "<b>$userfile_name</b>"); else { $message="$mess[38] <b>$userfile_name</b> $mess[39]"; } } } } else { if (($user_status != ANONYMOUS) && ($logged_user_name != '')) // Update user statistics { list($files_uploaded, $files_downloaded, $files_emailed) = load_userstat($logged_user_name); $files_uploaded++; save_userstat($logged_user_name, $files_uploaded, $files_downloaded, $files_emailed, time()); } // Save description $ip = getenv('REMOTE_ADDR'); $filestatus = ($validation_enabled) ? UNVALIDATED : VALIDATED; if (!move_uploaded_file($userfile['tmp_name'], "$destination/$userfile_name")) { $message="$mess[33] $userfile_name"; } else { if ($encrypt_filecontent) { encrypt_file("$destination/$userfile_name"); } $md5temp = exec('md5sum '."'$current_dir/$filename'"); $md5value = substr($md5temp,0,32); save_file_description("$destination/$userfile_name.desc", $description, $filestatus, $logged_user_name, $ip, $md5value); // Successful file upload. increasebytecount("$destination/$userfile_name"); $message="$mess[36] <b>$userfile_name</b> $mess[37]"; if ($filestatus == UNVALIDATED) { $message = $message.". ".$mess[218]; } } } } place_header($message); show_contents(); break; The md5 part I added is close to the very bottom. Also, here's the function save_file_description: function save_file_description($filename, $description, $activated, $logged_user_name, $ip, $md5value) { $description = stripslashes($description); $fp=fopen($filename, 'w+'); fputs($fp, $logged_user_name."\n"); fputs($fp, $ip."\n"); fputs($fp, $activated."\n"); fputs($fp, $description."\n"); fputs($fp, $md5value); fclose($fp); } However, when I upload the file, it gives me an error saying save_file_description is missing the 6th variable, which would be the md5 information. What am I screwing up in grabbing the md5 information that's not sending it to the save_file_description function? Link to comment https://forums.phpfreaks.com/topic/197267-trouble-with-an-upload-script/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.