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
Tags: upload
Posted in: Email Systems, File Upload, Mail
Post's RSS » RSS 2.0
Post's Comments RSS » RSS 2.0
Posted in: Email Systems, File Upload, Mail
Post's RSS » RSS 2.0
Post's Comments RSS » RSS 2.0

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?
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.