954,180 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Sending pic attachments via PHP form

Hi

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.

LEE

leroytrolley
Newbie Poster
7 posts since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

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.

sarahk
Junior Poster
144 posts since Apr 2005
Reputation Points: 10
Solved Threads: 1
 

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. :)

fsn812
Junior Poster in Training
93 posts since Jan 2004
Reputation Points: 41
Solved Threads: 2
 

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.

JC_McGeekster
Newbie Poster
18 posts since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

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

Leroy

Attachments emailformexample.php (1.84KB)
leroytrolley
Newbie Poster
7 posts since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

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

[HTML]




[/HTML]

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:

[PHP]<?php
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
}
} [/PHP]

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.

JC_McGeekster
Newbie Poster
18 posts since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

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.

Leroy

leroytrolley
Newbie Poster
7 posts since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

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.

JC_McGeekster
Newbie Poster
18 posts since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

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

mike4
Newbie Poster
16 posts since Jul 2006
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You