User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the PHP section within the Web Development category of DaniWeb, a massive community of 392,060 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 4,240 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our PHP advertiser: Lunarpages PHP Web Hosting
Views: 2383 | Replies: 4
Reply
Join Date: Oct 2005
Posts: 7
Reputation: leroytrolley is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
leroytrolley leroytrolley is offline Offline
Newbie Poster

File Attachment Small Problem

  #1  
Oct 26th, 2005
Hi

I've been trying to get a email form which allows my users to send photos as an attachemt via a "upload" button. I've got it working i.e. the form is sending me the data plus the photos, but I'm still getting this error when "submit" is pressed.

Notice: Undefined variable: fileatt_name in d:\inetpub\mm.models121.co.uk\uploader.php on line 94

This is line 94 of my code :

" filename=\"{$fileatt_name}\"\n" .

I'm not sure what is going on here.

Anybody got any ideas?

Leroy
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Oct 2005
Posts: 7
Reputation: leroytrolley is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
leroytrolley leroytrolley is offline Offline
Newbie Poster

Re: File Attachment Small Problem

  #2  
Oct 26th, 2005
Here is the code I'm using. I'm not sure how I'm supposed to make the variable?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Send Your Photo's to Models 121</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style1 {
font-weight: bold;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: x-small;
}
.style2 {font-family: Verdana, Arial, Helvetica, sans-serif}
.style3 {font-size: x-small}
.style4 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: x-small; }
-->
</style>
</head>
<body>


<?php
if ($_SERVER['REQUEST_METHOD']=="POST"){

// we'll begin by assigning the To address and message subject
$to="lee@leeosullivan.com";
$subject="Modeling Photos";


// get the sender's name and email address
// we'll just plug them a variable to be used later
$from = stripslashes($_POST['fromname'])." < ".stripslashes($_POST['fromemail'])." >";

// generate a random string to be used as the boundary marker
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";

// now we'll build the message headers
$headers = "From: $from\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/mixed;\r\n" .
" boundary=\"{$mime_boundary}\"";

// here, we'll start the message body.
// this is the text that will be displayed
// in the e-mail
$message="These photos have been sent by {$from} ";

// next, we'll build the invisible portion of the message body
// note that we insert two dashes in front of the MIME boundary
// when we use it
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";

// now we'll process our uploaded files
foreach($_FILES as $userfile){
// store the file information to variables for easier access
$tmp_name = $userfile['tmp_name'];
$type = $userfile['type'];
$name = $userfile['name'];
$size = $userfile['size'];

// if the upload succeded, the file will exist
if (file_exists($tmp_name)){

// check to make sure that it is an uploaded file and not a system file
if(is_uploaded_file($tmp_name)){

// open the file for a binary read
$file = fopen($tmp_name,'rb');

// read the file content into a variable
$data = fread($file,filesize($tmp_name));

// close the file
fclose($file);

// now we encode it and split it into acceptable length lines
$data = chunk_split(base64_encode($data));
}

// now we'll insert a boundary to indicate we're starting the attachment
// we have to specify the content type, file name, and disposition as
// an attachment, then add the file content.
// NOTE: we don't set another boundary to indicate that the end of the
// file has been reached here. we only want one boundary between each file
// we'll add the final one after the loop finishes.
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$name}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n";
}
}
// here's our closing mime boundary that indicates the last of the message
$message.="--{$mime_boundary}--\n";
// now we just send the message
if (@mail($to, $subject, $message, $headers))
echo "Thank you for posting your photos to Models 121. We will be in touch very soon.";
else
echo "Failed to send";
} else {
?>
<div align="center"><img src="logoforflashcards.jpg" width="167" height="40">
</div>
<p align="center" class="style1">Photo uploading page.</p>
<p align="center" class="style1">To complete your application, please send us at least 10 of your best photos.</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"
enctype="multipart/form-data" name="form1" class="style1">
<div align="center">
<table width="600" border="0" align="center" cellpadding="3" cellspacing="3">
<tr>
<td width="283" height="29"><div align="left">Your Name:&nbsp;&nbsp;
<input type="text" name="fromname">
</div></td>
<td width="26">&nbsp;</td>
<td width="291">&nbsp;</td>
</tr>
<tr>
<td><div align="left">Your E-Mail:&nbsp;
<input type="text" name="fromemail">
</div></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><div align="left">Photo 1 :
<input type="file" name="file1">
</div></td>
<td><div align="left"></div></td>
<td><div align="left">Photo 6 :
<input name="file6" type="file" id="file6">
</div></td>
</tr>
<tr>
<td><div align="left">Photo 2 :
<input type="file" name="file2">
</div></td>
<td><div align="left"></div></td>
<td><div align="left">Photo 7 :
<input name="file7" type="file" id="file7">
</div></td>
</tr>
<tr>
<td><div align="left">Photo 3 :
<input name="file3" type="file" id="file3">
</div></td>
<td><div align="left"></div></td>
<td><div align="left">Photo 8 :
<input name="file8" type="file" id="file8">
</div></td>
</tr>
<tr>
<td><div align="left">Photo 4 :
<input name="file4" type="file" id="file4">
</div></td>
<td><div align="left"></div></td>
<td><div align="left">Photo 9 :
<input name="file9" type="file" id="file9">
</div></td>
</tr>
<tr>
<td><div align="left">Photo 5 :
<input name="file5" type="file" id="file5">
</div></td>
<td><div align="left"></div></td>
<td><div align="left">Photo 10 :
<input name="file10" type="file" id="file10">
</div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><span class="style4"><strong>
<input type="submit" name="Submit" value="Upload">
</strong></span></td>
<td>&nbsp;</td>
</tr>
</table>
</div>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
</form>
<p align="center" class="style4"><strong>
<?php } ?>
</strong></p>
<p align="center" class="style4">&nbsp;</p>
<p align="center" class="style4">&nbsp;</p>
<p align="center" class="style4"><strong>
</strong>
</p>
</body>
</html>
Reply With Quote  
Join Date: Aug 2005
Posts: 80
Reputation: Daishi is an unknown quantity at this point 
Rep Power: 4
Solved Threads: 2
Daishi Daishi is offline Offline
Junior Poster in Training

Re: File Attachment Small Problem

  #3  
Oct 30th, 2005
Like the error message makes perfectly clear, the variable is not defined anywhere before that call. Are you trying to send over the attachment's filename? Judging from your code, isn't that being stored in $name?

-Fredric
Reply With Quote  
Join Date: Sep 2007
Posts: 2
Reputation: dani_rosy is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
dani_rosy dani_rosy is offline Offline
Newbie Poster

Re: File Attachment Small Problem

  #4  
Oct 25th, 2007
Hi,
I am also coding the same but sending word and excel as attachment. If the explictly give the path name from server its working , but when i try to browse file from my PC its not working.
Email is send but if i open the attachment there is no text/content in it.
How do i need to open a file from my PC and attach through mail.
<form action="mail_attachment.php" method="POST" enctype="multipart/form-data">

<input type="file" name="fileatt"><br>

<input type="submit">
</form>
$fileatt = "/home/myfile/public_html/myreport.xls"; // Path to the file 
$fileatt_type = "application/octet-stream"; // File Type 
$fileatt_name = "myreport.xls"; // Filename that will be used for the file as the attachment 

$file = fopen($fileatt,'rb'); 
$data = fread($file,filesize($fileatt)); 
fclose($file); 
Insted of giving the path i need to browse from my PC.
Please help
Thanks.
Reply With Quote  
Join Date: Sep 2007
Location: Budapest
Posts: 251
Reputation: fatihpiristine has a little shameless behaviour in the past 
Rep Power: 0
Solved Threads: 12
fatihpiristine's Avatar
fatihpiristine fatihpiristine is offline Offline
Posting Whiz in Training

Re: File Attachment Small Problem

  #5  
Oct 25th, 2007
add a simple java script to upload file automatically to web server temp cache ( i meant to call upload file page ) and catch full path of the uploaded file then you will be able to do what you want..
Last edited by fatihpiristine : Oct 25th, 2007 at 7:07 pm.
Do a favour, leave me alone
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

DaniWeb PHP Marketplace
Thread Tools Display Modes

Similar Threads
Other Threads in the PHP Forum

All times are GMT -4. The time now is 11:43 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC