Jump to content

Foreach file


3raser

Recommended Posts

How would I make it so, for each file uploaded, it tells the database + 1

 

I already know how to do the database stuff, and make it update. But there is four fields, look for yourself http://www.rsdaily.uphero.com/. How would I check and see how many files have been uploaded? Is there a way to count it, or do a for each?

 

// Max size PER file in KB
$max_file_size="512";

// Max size for all files COMBINED in KB
$max_combined_size="2048";

//Maximum file uploades at one time
$file_uploads="4";

//The name of your website
$websitename="RSDaily Uploads";

// Full browser accessable URL to where files are accessed. With trailing slash.
$full_url="http://www.rsdaily.uphero.com/uploads/";

// Path to store files on your server If this fails use $fullpath below. With trailing slash.
$folder="./uploads/";

// Use random file names? true=yes (recommended), false=use original file name.
// Random names will help prevent files being denied because a file with that name already exists.
$random_name=true;

// Types of files that are acceptiable for uploading. Keep the array structure.
$allow_types=array("jpg","gif","png","zip","rar","txt","doc");

// Only use this variable if you wish to use full server paths. Otherwise leave this empty. With trailing slash.
$fullpath="";

//Use this only if you want to password protect your upload form.
$password=""; 

/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line.
*/

// Initialize variables
$password_hash=md5($password);
$error="";
$success="";
$display_message="";
$file_ext=array();
$password_form="";

// Function to get the extension a file.
function get_ext($key) { 
$key=strtolower(substr(strrchr($key, "."), 1));
$key=str_replace("jpeg","jpg",$key);
return $key;
}

// Filename security cleaning. Do not modify.
function cln_file_name($string) {
$cln_filename_find=array("/\.[^\.]+$/", "/[^\d\w\s-]/", "/\s\s+/", "/[-]+/", "/[_]+/");
$cln_filename_repl=array("", ""," ", "-", "_");
$string=preg_replace($cln_filename_find, $cln_filename_repl, $string);
return trim($string);
}

// If a password is set, they must login to upload files.
If($password) {

//Verify the credentials.
If($_POST['verify_password']==true) {
	If(md5($_POST['check_password'])==$password_hash) {
		setcookie("phUploader",$password_hash);
		sleep(1); //seems to help some people.
		header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
		exit;
	}
}

//Show the authentication form
If($_COOKIE['phUploader']!=$password_hash) {
	$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
	$password_form.="<table align=\"center\" class=\"table\">\n";
	$password_form.="<tr>\n";
	$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Password Required</td>\n";
	$password_form.="</tr>\n";
	$password_form.="<tr>\n";
	$password_form.="<td width=\"35%\" class=\"table_body\">Enter Password:</td>\n";
	$password_form.="<td width=\"65%\" class=\"table_body\"><input type=\"password\" name=\"check_password\" /></td>\n";
	$password_form.="</tr>\n";
	$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
	$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
	$password_form.="<input type=\"submit\" value=\" Verify Password \" />\n";
	$password_form.="</td>\n";
	$password_form.="</tr>\n";
	$password_form.="</table>\n";
	$password_form.="</form>\n";
}

} // If Password

// Dont allow submit if $password_form has been populated
If(($_POST['submit']==true) AND ($password_form=="")) {

//Tally the size of all the files uploaded, check if it's over the ammount.	
If(array_sum($_FILES['file']['size']) > $max_combined_size*1024) {

	$error.="<b>FAILED:</b> All Files <b>REASON:</b> Combined file size is to large.<br />";

// Loop though, verify and upload files.
} Else {

	// Loop through all the files.
	For($i=0; $i <= $file_uploads-1; $i++) {

		// If a file actually exists in this key
		If($_FILES['file']['name'][$i]) {

			//Get the file extension
			$file_ext[$i]=get_ext($_FILES['file']['name'][$i]);

			// Randomize file names
			If($random_name){
				$file_name[$i]=time()+rand(0,100000);
			} Else {
				$file_name[$i]=cln_file_name($_FILES['file']['name'][$i]);
			}

			// Check for blank file name
			If(str_replace(" ", "", $file_name[$i])=="") {

				$error.= "<b>FAILED:</b> ".$_FILES['file']['name'][$i]." <b>REASON:</b> Blank file name detected.<br />";

			//Check if the file type uploaded is a valid file type. 
			}	ElseIf(!in_array($file_ext[$i], $allow_types)) {

				$error.= "<b>FAILED:</b> ".$_FILES['file']['name'][$i]." <b>REASON:</b> Invalide file type.<br />";

			//Check the size of each file
			} Elseif($_FILES['file']['size'][$i] > ($max_file_size*1024)) {

				$error.= "<b>FAILED:</b> ".$_FILES['file']['name'][$i]." <b>REASON:</b> File to large.<br />";

			// Check if the file already exists on the server..
			} Elseif(file_exists($folder.$file_name[$i].".".$file_ext[$i])) {

				$error.= "<b>FAILED:</b> ".$_FILES['file']['name'][$i]." <b>REASON:</b> File already exists.<br />";

			} Else {

				If(move_uploaded_file($_FILES['file']['tmp_name'][$i],$folder.$file_name[$i].".".$file_ext[$i])) {

					$success.="<b>SUCCESS:</b> ".$_FILES['file']['name'][$i]."<br />";
					$success.="<b>URL:</b> <a href=\"".$full_url.$file_name[$i].".".$file_ext[$i]."\" target=\"_blank\">".$full_url.$file_name[$i].".".$file_ext[$i]."</a><br /><br />";

				} Else {
					$error.="<b>FAILED:</b> ".$_FILES['file']['name'][$i]." <b>REASON:</b> General upload failure.<br />";
				}

			}

		} // If Files

	} // For

} // Else Total Size

If(($error=="") AND ($success=="")) {
	$error.="<b>FAILED:</b> No files selected<br />";
}

$display_message=$success.$error;

} // $_POST AND !$password_form
?>

Link to comment
https://forums.phpfreaks.com/topic/204699-foreach-file/
Share on other sites

Archived

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

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