PHP Magic Book – Free PHP Scripts, Tutorials and Downloads, PHP AtoZ Reloaded, free php tutorials, free php downloads, php scripts, PHP tips

Upload and eMail File Using PHP and Apply Restrictions

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="http://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

  • Share/Bookmark
Tags:
Posted in: Email Systems, File Upload, Mail
Post's RSS » RSS 2.0
Post's Comments RSS » RSS 2.0

Related Posts




2 Responses to “Upload and eMail File Using PHP and Apply Restrictions”

  1. Jul 23, 2009
    dupreelove Says:

    Hi

    Got the upload work and the forms sends a notfication to my email, but I don’t get the messages, which I put into the form?! I modified the form a bit, so that it is only “Name”, “Email” and “Info” that is to be filled out – does this require a rewriting of the php?

  2. Oct 14, 2009
    Mike Says:

    Hi,

    Just wanted to says thanks for the awesome script. I was able to rewrite the code to my liking for what I needed. But I was wondering why if you don’t put something in the upload and send it as a regular email it doesn’t send?Well is says it sends but never shows up in my inbox.But if I have an attachment it sends fine with the message.

Post a Comment

  Subscribe Via RSS
  Subscribe Via Email