PHP Developer's Network : Network Member
Forums

PHP Classes
Icontem

Subject: Attachment from form


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend!

      MIME E-mail message sending   All threads   Attachment from form   (Un) Subscribe thread alerts  
Subject:Attachment from form
Summary:use attachment from form in message
Messages:19
Author:Miles Frangenberg
Date:2007-03-26 20:33:52
Update:2008-09-05 11:30:55
 
  1 - 10   11 - 19  

  1. Attachment from form   Reply  
Picture of Miles Frangenberg
Miles Frangenberg
2007-03-26 20:33:52
Hello, I am having issues adding an attachment from a form:
<input name="attachedfile1" type="file" size="35">

In php I use:
if (isset($_FILES['attachedfile1'])) {
$file_attachment=array(
"Name"=>$_FILES['attachedfile1']['name'],
"Data"=>$_FILES['attachedfile1'],
"Content-Type"=>"automatic/name",
"Disposition"=>"attachment"
);
$email_message->AddFilePart($file_attachment);
}

Any File that I attach seems to have the correct name but no data. How do I get this to work? I'm using email_message.php, the rest of the mailing seems to work fine.

Thanks.

  2. Re: Attachment from form   Reply  
Picture of Manuel Lemos
Manuel Lemos
2007-03-26 21:09:05
Instead of

"Data"=>$_FILES['attachedfile1'],

use

"FileName"=>$_FILES['attachedfile1'],

  3. Re: Attachment from form   Reply  
Picture of Miles Frangenberg
Miles Frangenberg
2007-03-27 00:20:11
If I use:

if (isset($_FILES['attachedfile1'])) {
$file_attachment=array(
"Name"=>$_FILES['attachedfile1']['name'],
"FileName"=>$_FILES['attachedfile1'],
"Content-Type"=>"automatic/name",
"Disposition"=>"attachment"
);
$email_message->AddFilePart($file_attachment);
}

I get: Warning: basename() expects parameter 1 to be string, array given in /home/wxvufm/public_html/globals/email_message.php on line 2148
Error: could not open part file Array

If I use:

if (isset($_FILES['attachedfile1'])) {
$file_attachment=array(
"Name"=>$_FILES['attachedfile1'],
"FileName"=>$_FILES['attachedfile1'],
"Content-Type"=>"automatic/name",
"Disposition"=>"attachment"
);
$email_message->AddFilePart($file_attachment);
}

I get the same error.
Using:
if (isset($_FILES['attachedfile1'])) {
$file_attachment=array(
"FileName"=>$_FILES['attachedfile1'],
"Content-Type"=>"automatic/name",
"Disposition"=>"attachment"
);
$email_message->AddFilePart($file_attachment);
}

I get: Warning: basename() expects parameter 1 to be string, array given in /home/wxvufm/public_html/globals/email_message.php on line 2148
Error: it was not specified the file part name

Any idea? Thanks

  4. Re: Attachment from form   Reply  
Picture of Manuel Lemos
Manuel Lemos
2007-03-27 01:16:07
Sorry I meant $_FILES['attachedfile1']['tmp_name'].

  5. Re: Attachment from form   Reply  
Picture of Miles Frangenberg
Miles Frangenberg
2007-03-27 02:27:17
Thanks so much, it works great.

How about including this in the documentation? I feel like this is a pretty common application for your class and not very straightforward at all. Everything else is documented pretty well.

Also for anyone following using this thread:
if (isset($_FILES['attachedfile1']) doesn't actually work

if ($_FILES['attachedfile1']['name']) is the only thing I had success with.

I don't think isset($_FILES['attachedfile1']['name']) worked either.

  6. Re: Attachment from form   Reply  
Picture of Manuel Lemos
Manuel Lemos
2007-03-27 03:25:31
Form uploading is really outside the scope of this class, so it does not make much sense to mention that in the MIME class documentation.

What you need to read to learn about PHP file uploading is the PHP documentation:

http://www.php.net/manual/en/features.file-upload.php

As you may read there, the path of the uploaded file in the server is $_FILES['attachedfile1']['tmp_name'], not $_FILES['attachedfile1']['name'] .

  7. Re: Attachment from form   Reply  
Picture of Indra Syafruddin
Indra Syafruddin
2007-07-09 11:43:01
When I receive the attachment, the file is always corrupt. the file format is zipped

$filename = $attachment["name"];
$text_attachment=array(
"FileName"=>$attachment["tmp_name"],
"Name"=>$filename,
"Content-Type"=>$attachment["type"],
"Disposition"=>"attachment"
);
$email_message->AddFilePart($text_attachment);
}

is there anything missing from my code ?

  8. Re: Attachment from form   Reply  
Picture of Indra Syafruddin
Indra Syafruddin
2007-07-13 10:22:33
another information, the same script works on linux machine with PHP 4.4.4, but not work on windows machine with PHP 4.4.3

  9. Re: Attachment from form   Reply  
Picture of Manuel Lemos
Manuel Lemos
2007-07-13 19:51:11
It seems that your PHP environent has magic quotes runtime option set but for some reason it is not able to undo the magic quotes effect.

Is that a local or remote file?

Which PHP version are you using?

Can you please run this script so I can figure what can be the problem? Make sure you replace the value of "your_file_name_here" with a string with the name of the file you want to attach.

<?php

$f = "your_file_name_here";
$size=filesize($f);
if(!($file=fopen($f,"rb")))
die("could not open the file ".$f);
$body="";
while(!feof($file))
{
if(GetType($block=@fread($file,8000))!="string")
{
fclose($file);
die("could not read file ".$f);
}
$body.=$block;
}
fclose($file);
var_dump($f, $size, strlen($body), get_magic_quotes_runtime());
if((GetType($size)=="integer"
&& strlen($body)>$size)
|| (function_exists("get_magic_quotes_runtime")
&& get_magic_quotes_runtime()))
$body=StripSlashes($body);
var_dump($f, $size, strlen($body), get_magic_quotes_runtime());
?>

  10. Re: Attachment from form   Reply  
Picture of Indra Syafruddin
Indra Syafruddin
2007-07-16 02:18:20
I'm using remote server

This is the reply for the working server :
string(8) "test.rar" int(2905) int(2905) int(0) string(8) "test.rar" int(2905) int(2905) int(0)

This is the reply for the not-working server :
string(8) "test.rar" int(2905) int(2905) int(0) string(8) "test.rar" int(2905) int(2905) int(0)

the working server use PHP 4.4.4-8
the not-working server use PHP 4.3.3

 
  1 - 10   11 - 19  
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2008 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products