I've just got a nice php form done and I now need my visitors to be able to upload pics and have them sent with the form data. Is that possible in a php form, if so, can anybody point me in the right direction.

Many thanks.


I use a free script called phpMailer which lets you do attachments really easily as well as embedded images.

The docs and examples all go with it but if you get stuck just post back here.

I use a free script called phpMailer which lets you do attachments really easily as well as embedded images.

The docs and examples all go with it but if you get stuck just post back here.

Thanks for the link. :)

leroytrolley, if you wish to design your own image uploader or mailer, then I would suggest reading about file uploads. The form you have should probably have some sort of limit on file size or type, like to only allow jpg and gif formats or something. Otherwise, I guess the script listed above would do nicely. Why don't you check out the PHP.Net file uploads page if you want to create your own image upload console: http://us2.php.net/features.file-upload

Good luck.

thanks. but it was a little to advanced for me.

what do I need to add to the attached php code to be able to process image uploads (about 10 images per email).



$adminaddress = "myemailaddress"; 
$siteaddress ="http://www.mysite.com"; 
$sitename = "my site"; 

//No need to change anything below ... 
// Gets the date and time from your server
$date = date("m/d/Y H:i:s");

// Gets the IP Address
if ($REMOTE_ADDR == "") $ip = "no ip";
else $ip = getHostByAddr($REMOTE_ADDR);

// Gets the POST Headers - the Flash variables
$action = $HTTP_POST_VARS['action'] ;
$email = $HTTP_POST_VARS['email'] ;
$name = $HTTP_POST_VARS['name'] ;
$comments = $HTTP_POST_VARS['comments'] ;
$address = $HTTP_POST_VARS['address'] ;
$home_number = $HTTP_POST_VARS['home_number'] ;
$mobile_number = $HTTP_POST_VARS['mobile_number'] ;

//Process the form data!
// and send the information collected in the Flash form to Your nominated email address

if ($action == "send") {
	mail ("$adminaddress","Info Request",
	"A visitor at $sitename has left the following information\n
	Name: $name
	Address: $address 
	Email: $email\n
	Home Number: $home_number
	Mobile Number: $mobile_number\n
	The visitor commented:
	Logged Info :
	Hostname: $ip
	IP address: $REMOTE_ADDR
	Date/Time:  $date","FROM:$adminaddress" ) ; 
	//This sends a confirmation to your visitor
	mail ("$email","Thank You for visiting $sitename", 
	"Hi $name,\n
	Thank you for messaging me at my site.
	Your message has been sent to my inbox, and I will respond as soon as possible.
	Thanks again.
	Amiee Rickards
	$siteaddress","FROM:$adminaddress") ; 
	//Confirmation is sent back to the Flash form that the process is complete
	$sendresult = "Thank you. You will receive a confirmation email shortly.";
	$send_answer = "answer=";
	$send_answer .= rawurlencode($sendresult);
	echo $send_answer;
} //


Okay, you have a form, right? Within the form, you add a series of file inputs. Something like:

<form action="imgUploader.php" method="POST" enctype="multipart/form-data">
<input type="file" name="photo[]" /><br />
<input type="file" name="photo[]" /><br />
<input type="file" name="photo[]" /><br />
<br />
<input type="submit" value="Upload 'Em!" />

If you wish, you could do a JavaScript text append thing to where a user clicks a button, and the browser will dynamically add another file input. Anyways, to process these uploads, you of course need something server-side. So, you make your PHP script. Something basic like this should do:

foreach ($_FILES['photo']['error'] as $key => $error) { //For each image...
   if ($error == UPLOAD_ERR_OK) { //If no errors...
		$tmp_name = $_FILES['photo']['tmp_name'][$key];
		$name = $_FILES['photo']['name'][$key];
		  move_uploaded_file($tmp_name, "images/$name"); //Move image

Thanks and compliments to the grand PHP manual that I just happen to have. This script should run with PHP 3 and above, but you also have to have a reasonable browser that will handle these uploads. Now, I am not any type of expert on file uploads, as I haven't really messed around with them. But I do know that the form enctype is required, and that the name must have the "[]" thing. This is what creates the array of files; it is required.

Well, I hope this is what you're looking for. Maybe somebody else can help. If not, you may always go to Google and type your query as, "PHP image upload example." And again, good luck.

Many many thanks, but how does the php code know where to send the photos to i.e I cant see where I need put the email adress to send them to.

Sorry if I sound really thick. I'm just a humble designer who can't code for toffee.


Well, the script above will only work to put the images on your server, like an image directory. It will take some modifications to make it function when sending an image in an email, but I believe you could do something to where when the image is uploaded, the link to that image is stored in a variable, and when you send the email, all you do is say here is image one titled "Andrew" and then place in the variable which then displays the link for you or your user to see and use.

the first responder told you all u needed there are scripts called mime classes or something which enable you to send emails reeeealy easy! otherwise
it would be

This article has been dead for over six months. Start a new discussion instead.