PHP Form works great, but leaves off file extension

octopuss

New Member
When I use this form I made, it sends the files perfectly, except... it leaves off the extension. I knew what extension I sent so I was able to see that the file wasn't corrupted, but my customer won't know what extension they're getting (there are like 5 possibilities) and it would be unprofessional. How can I make it so this sends the customer the file with the correct extension. The correct name would be good also, but isn't mandatory.HTML: \[code\]</p><title>The Legend Maker - submit a story (test server)</title><link href="http://stackoverflow.com/CSS/CSS.css" rel="stylesheet" type="text/css"><div align="center"> <p><span class="linkText"><a href="http://stackoverflow.com/index.html">Home</a> <a href="http://stackoverflow.com/contact-us.php">Contact Us</a> <a href="http://stackoverflow.com/payments.html">Payments</a></span> </p> <p>&nbsp;</p> <h2 class="headingText">&nbsp;</h2> <h2 class="headingText">&nbsp;</h2> <h2 class="headingText">&nbsp;</h2> <h2 class="headingText">(for testing purposes)</h2> <h2 class="headingText">Submit a story test server</h2></div><form method="post" action="scripts/email.php" enctype="multipart/form-data"><table width="476" height="468" border="0" cellpadding="0" cellspacing="2"><tr><td width="23%" height="25" class="bodytext"><p align="center">Your Name:</p></td><td width="77%"><input name="name" type="text" id="name" size="32"></td></tr><tr><td height="25" class="bodytext"><p align="center">Email Address:</p></td><td><input name="email" type="text" id="email" value="http://stackoverflow.com/questions/14421498/[email protected]" size="32"></td></tr><tr><td height="44" class="bodytext"><p align="center">Recipient's Gender:</p></td><td><label> <select name="gender" id="gender"> <option value="http://stackoverflow.com/questions/14421498/male" selected="selected">Male</option> <option value="http://stackoverflow.com/questions/14421498/female">Female</option> <option value="http://stackoverflow.com/questions/14421498/other">Other</option> </select></label></td></tr><tr><td height="44" class="bodytext"><p align="center">Recipient's Name:</p> </td><td align="left" valign="top"><input name="recipientname" type="text" id="recipientname" value="http://stackoverflow.com/questions/14421498/ex: Jonny" size="32" /></td></tr><tr> <td height="44" class="bodytext"><p align="center">Recipient's Interests or Hobbies:</p></td> <td align="left" valign="top"><textarea name="hobbies" cols="50" rows="6" id="hobbies">ex: horseback riding, biking...</textarea></td></tr><tr> <td class="bodytext"><p align="center">Recipient's Age:</p></td> <td align="left" valign="top"><input name="age" type="text" id="age" size="5" maxlength="3" /></td></tr><tr> <td class="bodytext"><p align="center">Other Important Information:</p></td> <td align="left" valign="top"><textarea name="otherinfo" cols="50" rows="7" id="otherinfo">ex: other things the recipient may enjoy or their favorite superheroPlease specify information you are giving us also:don't do this: supermansubmit it like this: favorite superhero: superman</textarea></td></tr><tr> <td class="bodytext"><p align="center">Images You Would Like To Include In Story:</p></td> <td align="left" valign="top"><label> <br /> <input type="file" name="file" id="file" /> </label></td></tr><tr> <td class="bodytext"><p align="center">&nbsp;</p></td> <td align="left" valign="top"><input type="submit" name="Submit" value="http://stackoverflow.com/questions/14421498/Send" /></td></tr></table></form> \[/code\]PHP:\[code\] <?php require_once '../PHPMailer_5.2.2/class.phpmailer.php'; $name = $_POST['name'] ; $email = $_POST['email'] ; $gender = $_POST['gender'] ; $recipientname = $_POST['recipientname'] ; $hobbies = $_POST['hobbies'] ; $age = $_POST['age'] ; $otherinfo = $_POST['otherinfo'] ; $file = $_POST['file'] ; $body = "Name: $name Email: $email Gender: $gender Recipient's name: $recipientname Hobbies: $hobbies Age: $age Other Information: $otherinfo"; $mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch try { $mail->AddAddress('***[email protected]', 'Michael ***'); $mail->SetFrom($email, $name); $mail->AddReplyTo($email, $name); $mail->Subject = "Message From Legendmaker Customer: $name"; $mail->Body = $body; $mail->AddAttachment($_FILES['file']['tmp_name']); // attachment $mail->Send(); echo "Story Request Sent Successfully</p>\n"; } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! } ?>\[/code\]
 
Back
Top