"Excel cannot open the file because the file format or the file extension is not valid. verify that the file has not been corrupted and that the file extension matches the format of the file"
here is the code i am using
Expand|Select|Wrap|Line Numbers
- <?php
- include("..\config.php");
- if(!empty($_POST['file_idZ'])){
- $file_idZ = $_POST['file_idZ'];
- $files_array = explode("|",$file_idZ);
- $q="SELECT * from ".CALL_FILES." WHERE";
- for($r=0; $r<sizeof($files_array); $r++){
- $q.=" file_id='".$files_array[$r]."' OR";
- }
- $limit=strlen($q)-3;
- $q=substr($q,0,$limit);
- $r = execute($q);
- $count=0;
- if(mysql_num_rows($r)){
- while($f=mysql_fetch_array($r)){
- $userfile[$count]="../".DOCS.$f["file_name"];
- $count++;
- }
- }
- // we'll begin by assigning the To address and message subject
- $to = $_POST['send_to_email'];
- $subject="Call group files recieved";
- $from = $_SESSION['SESSION_user_email'];
- // get the sender's name and email address
- // we'll just plug them a variable to be used later
- $from = stripslashes($from);
- // 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 = "From: ".$from."\r\n";
- // 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
- for($e=0; $e<sizeof($userfile); $e++){
- // store the file information to variables for easier access
- $tmp_name = $userfile[$e];
- $name = basename($userfile[$e]);
- $size = filesize($userfile[$e]);
- $type="application/octet-stream ";
- //}
- // 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)) or die("Cant read the file");
- // 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 "Mail Sent";
- }
- }
- ?>