大家好,cakephp中的File::write()有一个奇怪的问题。
我编写这段代码是为了生成pdf视图并将其保存在文件中。
private function generate( $id ){
$order = $this->Order->read( null, $id );
$this->set('order', $order);
$view = new View($this);
$viewdata = $view->render('pdf');
//set the file name to save the View's output
$path = WWW_ROOT . 'ordini/' . $id . '.pdf';
$file = new File($path, true);
//write the content to the file
$file->write( $viewdata );
//return the path
return $path;
}
我需要生成这个pdf并将其作为附件发送,这是我的代码
public function publish ($id) {
$pdf_file = $this->generate( (int)$id );
$Email = new CakeEmail();
$Email->from(array('info@.....com' => '......'));
$Email->to('....@gmail.com');
$Email->subject('Nuovo ordine');
$filepath = WWW_ROOT . 'ordini/' . $id . '.pdf';
$Email->attachments(array('Ordine.pdf' => $filepath));
$Email->send('......');
}
我第一次运行这段代码时,电子邮件不起作用,只有当文件夹中的pdf文件已经存在时,电子邮件才起作用。
我认为File::写执行某种异步写入,当系统执行电子邮件::attachments文件in不准备。
如何在此代码中插入while()来检查文件的可用性?
谢谢。
if($file->write( $viewdata ))
{
return $path;
}
我正在使用TCPDF库在我的CakePHP应用程序中创建发票。如果我转到,我的view.ctp包括在浏览器中生成和显示pdf的代码。我想添加发送PDF作为电子邮件附件的能力,所以我创建了动作,并将代码从view.ctp复制到电子邮件模板中。 现在我被卡住了,我不知道如何在附加PDF之前先生成它。在我的view.ctp页面模板的末尾,我使用 它将pdf发送到浏览器中查看,而不创建文件。如果使用“F”
我试图从Firefox中的新MediaRecorderAPI发送一个Blob到NodeJS以将其存储在文件中。Blob包含转换为webm-file的记录。我在发送之前将这个Blob分成一定的大小,以便能够通过webrtc数据通道提供的带宽发送它。这个看起来像这样: 在nodeJS方面,我试图将数据转换回webm文件,就像这样: 它告诉我,块被写入,但是文件是空的。我尝试了从blob派生的bas64
我正在用cakephp开发一个应用程序,我需要在其中生成一个pdf并将其作为电子邮件附件发送。我已经能够使用dompdf创建pdf视图,但我不知道如何将其保存为文件并以电子邮件附件的形式发送。请告诉我如何做到这一点。
我想用mailto标签发送电子邮件,附带一个pdf文件作为附件。mailto标记使用以下方法打开邮件窗口,其中包含传递的参数,如to和subject: 但是,附件作为一个参数不起作用。请建议如何在手机中发送pdf附件。 谢啦
并在config/bootstrap.php中添加了以下行: 在config/events.php中 在lib/event/mylistener.php中 PS:我使用Cakephp事件是因为它允许我在一个地方从不同的控制器收集所需的数据,然后从那里,我可以创建事件流(服务器发送的事件)。如果有更好的选择,请分享。
我正在使用Apache Camel 2.22.0,并且有一个简单的路由,即发送电子邮件(带有一些属性引用): 我希望得到的是一封普通的电子邮件,邮件正文中包含来自Velocity模板的文本。我实际收到的是一封电子邮件,其中附有Velocity模板中的文本。在MS Outlook中看起来是这样的: 为什么是附件?如何让邮件组件将Velocity模板的结果直接插入到电子邮件正文中? 更新: 通过打开邮