使用OpenCart 2.1.1.1用PHP发送附件

编程入门 行业动态 更新时间:2024-10-25 08:19:13
本文介绍了使用OpenCart 2.1.1.1用PHP发送附件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

任何了解OpenCart 2.0.1.1的人都知道我如何实现system/libary/mail.php中的以下addAttachment函数:

Does anyone with knowledge of OpenCart 2.0.1.1 know how I could implement the following addAttachment function found in system/libary/mail.php:

public function addAttachment($filename) { $this->attachments[] = $filename; }

进入目录/控制器/信息/contact.php-这样默认的联系表还可以包含附件上传功能吗?我尝试过但没有骰子.

into catalog/controller/information/contact.php - so that the default contact form can also include an attachment upload feature? I tried this but no dice.

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { unset($this->session->data['captcha']); $mail = new Mail($this->config->get('config_mail')); $mail->setTo($this->config->get('config_email')); $mail->setFrom($this->request->post['email']); $mail->setSender($this->request->post['name']); $mail->setSubject(sprintf($this->language->get('email_subject'), $this->request->post['name'])); $mail->setText(strip_tags($this->request->post['enquiry'])); $mail->addAttachment($this->request->post['file']); $mail->send(); $this->response->redirect($this->url->link('information/contact/success')); }

推荐答案

您不能直接将文件传递给$mail->addAttachment($this->request->post['file']);

You can not directly pass file to $mail->addAttachment($this->request->post['file']);

首先您需要上传文件

//catalog/view/theme/default/template/information/contact.tpl <div class="form-group"> <label class="col-sm-2 control-label" for="input-file">File</label> <div class="col-sm-10"> <button type="button" id="button-upload" data-loading-text="Uploading.." class="btn btn-default btn-block"><i class="fa fa-upload"></i> <?php echo 'Upload'; ?></button> <input type="hidden" name="file" value="" id="file"/> </div> </div>

现在我们需要上传脚本来上传文件

Now we need upload script to upload file

//before footer in catalog/view/theme/default/template/information/contact.tpl <script> $('button[id^=\'button-upload\']').on('click', function() { var node = this; $('#form-upload').remove(); $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>'); $('#form-upload input[name=\'file\']').trigger('click'); timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[0]), cache: false, contentType: false, processData: false, beforeSend: function() { $(node).button('loading'); }, complete: function() { $(node).button('reset'); }, success: function(json) { $('.text-danger').remove(); if (json['error']) { $(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>'); } if (json['success']) { alert(json['success']); $(node).parent().find('input').attr('value', json['code']); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } }, 500); }); </script>

最后,您可以将附件文件传递给邮件功能

Finally now you can pass attachment file to mail function

//catalog/controller/information/contact.php if($this->request->post['file']){ $this->load->model('tool/upload'); $upload_info = $this->model_tool_upload->getUploadByCode($this->request->post['file']); $phyname = DIR_UPLOAD.$upload_info['filename']; $temp_name = DIR_UPLOAD.$upload_info['name']; copy($phyname,$temp_name); $mail->AddAttachment($temp_name); } $mail->send(); if(isset($temp_name)){ unlink( $temp_name ); }

更多推荐

使用OpenCart 2.1.1.1用PHP发送附件

本文发布于:2023-06-08 21:25:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/589325.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:附件   OpenCart   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!