Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter邮件附件已损坏_Php_Codeigniter_Email Attachments - Fatal编程技术网

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编辑这些问题:)我也有同样的问题……正在匆忙寻找答案(