Php codeigniter邮件附件已损坏
使用Php codeigniter邮件附件已损坏,php,codeigniter,email-attachments,Php,Codeigniter,Email Attachments,使用codeigniter 1.5.2框架,我尝试将文件作为附件上传到mail中,但当mail send显示.dat文件时,它与我发送的文件不相关 $attachfilepath = $_FILES['userfile']['tmp_name']; $attachfilename = $_FILES['userfile']['name']; $CI->load->library('email'); $CI->email->from($adminemail, 'Clien
codeigniter 1.5.2
框架,我尝试将文件作为附件上传到mail中,但当mail send显示.dat文件时,它与我发送的文件不相关
$attachfilepath = $_FILES['userfile']['tmp_name'];
$attachfilename = $_FILES['userfile']['name'];
$CI->load->library('email');
$CI->email->from($adminemail, 'Client Name');
$CI->email->to($to);
$CI->email->subject($subject);
$CI->email->message($message);
$CI->email->attach($attachfilepath,$attachfilename);
$CI->email->send();
另外,我听说这个版本的附件功能不稳定,但当提供本地文件时,附件功能工作正常。我不认为您可以用这种方式附加文件 我无法明确找到旧的1.5.2代码,因此我无法100%确认这一点
attach($filename,$disposition='attachment')
^^这是电子邮件库2.x中的方法签名
attach($attachfilepath,$attachfilename);
^^你做得不对
我认为你需要这样做
$attachedFileLocation=$attachfilepath$附件文件名
$CI->email->attach($attachedFileLocation);
^^您可能需要在2之间添加正斜杠,以便创建完整路径,但这是您必须调试的内容
希望这能解决你的问题
另外,我还建议升级到CI 2,因为2版本之间没有太多突破性的更改,但解决了许多小问题。@bhugy我认为这是codeigniter版本的一些总线。
我们不能在这个版本的codeigniter中使用临时文件保存路径。但是当我们使用纯php时,我们可以使用这个逻辑。(可能是新版本的codeigniter)否。它不工作。我以前试过这个(
谢谢你回复麦克风:)如果你打开电子邮件库并转到附加方法,它会说什么?没关系,我找到了1.5.2源代码。。。它与我在2.x代码
函数attach($filename,$disposition='attachment')
中找到的完全相同。这意味着附加文件的方式不正确。function-attach($filename,$disposition='attachment'){$This->\u-attach\u-name[]=$filename;$This->\u-attach\u-type[]=$This->\u-mime\u-types(next(explode('.',basename($filename));$This->\u-attach\u-disp[]=$disposition;//也可以是“内联”的,不确定是否重要}
它在本地文件上的工作<代码>$CI->email->attach('/web/html/sidweb2/cuploads/eee.txt')此代码正在工作。但我必须在不保存上载文件的情况下进行附加:(感谢@PrasadKhode编辑这些问题:)我也有同样的问题……正在匆忙寻找答案(