Upload and eMail File Using PHP and Apply Restrictions

by Hiroshi on June 17, 2008

in Email Systems, File Upload, Mail

This is complete request form and it can be used to ‘Request A Quote’ and have some material from user uploaded at your server. This is what script does.

Functionality

– Determines Max File Size (Size Restriction)
– Determines Max Available Space for upload (Space Restriction)
– Stores the file in predefined directory at your server
– Emails you a path to the link of recent uploaded file with other details

Variables Used In Form

$Name
$Speciality
$Email
$Phone
$Fax
$Clinic
$uploadedfile
$info

PHP Code For File Upload

<?php
$MaxFileSize = "2048000"; // max file size in bytes
$HDDSpace = "1048576"; // max total size of all files in directory
$HDDTotal = "445";
$OffExt = "";
// add characters to strip out of filenames
$ThisFileName = basename(__FILE__); // get the file name
$abspath = str_replace($ThisFileName,"",__FILE__);   // get the directory path
// full path
$path=$abspath;
$pathext="upload/";
$snr = array("%","'","+","\\","/","#","..","!",'"',',','?','*','~');
$temp=$HTTP_POST_FILES['uploadedfile']['name'];
 
if($HTTP_POST_FILES['uploadedfile']['name'])
{
 $HTTP_POST_FILES['uploadedfile']['name'] = strip_tags($HTTP_POST_FILES['uploadedfile']['name']);
 $HTTP_POST_FILES['uploadedfile']['name'] = str_replace($snr,"",$HTTP_POST_FILES['uploadedfile']['name']);
// remove any % signs from the file name
 $HTTP_POST_FILES['uploadedfile']['name'] = trim($HTTP_POST_FILES['uploadedfile']['name']);
 
 /* if the file size is within allowed limits */
 if($HTTP_POST_FILES['uploadedfile']['size'] > 0 && $HTTP_POST_FILES['uploadedfile']['size'] < $MaxFileSize)
			{
  /* if adding the file will not exceed the maximum allowed total */
  if(($HDDTotal + $HTTP_POST_FILES['uploadedfile']['size']) < $HDDSpace)
				{
 
  /* put the file in the directory */
move_uploaded_file($HTTP_POST_FILES['uploadedfile']['tmp_name'], $path.$pathext.$HTTP_POST_FILES['uploadedfile']['name'].$OffExt);
$msg = "The file ".$HTTP_POST_FILES['uploadedfile']['name']." is Successfully uploaded ";
 
		$myfrom = $Email;
		$myemail = "youremail@hotmail.com";
		$todayis = date("l, F j, Y, g:i a") ;
$filename="https://www.sitename.com/".$pathext.$HTTP_POST_FILES['uploadedfile']['name'].$OffExt;
		$filename=str_replace("","%20",$filename);
 
		$subject= "Request From Website";
 
		$message = "
		uploadedfile  	        : $filename
		Name          	        : $Name
		Email         	          : $Email
		Phone         	         : $Phone
		Fax           	          : $Fax
		Speciality    	         : $Speciality
		Clinic/Hospital          :$Clinic
		Comments/Request   :$info
		";
		$from = "From: $myfrom\r\n";
		mail($myemail, $subject, $message, $from);
	                }
                else
			{
$msg = "The Filename: ".$HTTP_POST_FILES['uploadedfile']['name']." is BLOCKED from being uploaded here.";
                }
 
		}
        else
		{
        $MaxKB = $MaxFileSize/1024;
        // show the max file size in Kb
        $msg =  "The file was greater than the maximum allowed, file size of $MaxKB and could not be uploaded.";
	    }
	}
print $msg;
?>

Precautions

  • CHMOD ‘upload’ folder to 777 if it is at online server
  • Use enctype=”multipart/form-data” in form tag

Upload File With Restrictions And Email Script Download

Related Posts

Previous post:

Next post: