h5页面打开word文档ios_H5页面生成word文件及发送邮件

最近工作中有用到生成word文档及发送该附件的邮件。先说说我的思路和流程吧;

1.在后台用PHP将数据组合拼接成HTML格式;

2.生成带数据(HTML)的word文档(生成到项目对应的目录下);

3.配置发送邮件的信息(如邮件的host/port/username等);

第一步:我们先将数据组装拼接成HTML格式  代码如下:

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");

//有了这些,可以把带html标签的html源码导入到word里,并且可以保持html的样式。

$wordStr = '

$wordStr .= '

';

$wordStr .= '';

第2步.生成word文件到项目对应的目录下;

$file = rand(10000000,99999999).'.docx';

//保存文件到目录

$savefile = $file;

$attachDir = C("resourceFilesUpload");//上传文件保存路径,结尾不要带/

$attachDir_show = C("resourceFilesView");

$attachSubDir = 'visitdoc_'.date('ymd');

$attachDir = $attachDir.'/'.$attachSubDir;

if(!is_dir($attachDir))

{

@mkdir($attachDir, 0777);

}

$tempPath = $attachDir.'/'.$savefile;

file_put_contents($tempPath,file_get_contents("php://input"));

$myfile = fopen($tempPath, "a");

fwrite($myfile, $wordStr);//写入内容

fclose($myfile);//关闭该操作

3.配置发送邮件的信息(如邮件的host/port/username等);

//获取保存文件后的地址

$fileurl = $_SERVER["DOCUMENT_ROOT"]."/Public/upload/".$attachSubDir.'/'.$savefile;

//注意这里不能用网络地址 如www.baidu.com/image/xxx.jpg

//邮件title

$emaildesc = "您好:
";

$emaildesc .= "家访记录汇总, 请打开附件查看
";

$emaildesc .= "此致,晓黑板";

//引用邮件发送类

require THINK_PATH.'Extend/Emailsend/MySendMailNew.php';

$mail = new MySendMailNew();

$mail->setServer($this->emailhost, $this->username, $this->password); //你的邮件配置

$mail->setFrom($this->fromemail);

$mail->setReceiver($email);

$mail->setMailInfo($fileName, $emaildesc, $fileurl);

$mail->sendMail();

//$this->success("邮件发送成功,请及时打开邮箱查看");

return true;

效果如下:

1.生成的word文件

b425bc547ff00cf72378b31f2a851657.png

2.邮件发送后效果:

ac60572a60e7b0309c0f16cb6b367213.png

邮寄发送类的代码见下面附件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用第三方库Docx.js来实现在线预览Word文档的功能。具体实现步骤如下: 1. 引入Docx.js库 在html文件中引入Docx.js库的js文件: ```html <script src="https://cdn.jsdelivr.net/npm/docx/build/Docx.js"></script> ``` 2. 加载Word文档数据 使用JavaScript代码加载Word文档数据,可以从服务端或本地文件中获取数据。比如从服务端获取数据的代码如下: ```javascript fetch('word.docx') .then(response => response.arrayBuffer()) .then(buffer => { const docx = new Docx(); docx.load(buffer); // 处理Word文档数据 }); ``` 3. 将Word文档渲染到页面上 Docx.js提供了一个`renderTo`方法,可以将Word文档渲染到指定的DOM元素中。比如将Word文档渲染到id为`word-container`的div元素中的代码如下: ```javascript docx.renderTo('#word-container'); ``` 完整的示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>Word文档在线预览</title> <meta charset="UTF-8"> </head> <body> <div id="word-container"></div> <script src="https://cdn.jsdelivr.net/npm/docx/build/Docx.js"></script> <script> fetch('word.docx') .then(response => response.arrayBuffer()) .then(buffer => { const docx = new Docx(); docx.load(buffer); docx.renderTo('#word-container'); }); </script> </body> </html> ``` 其中,`word.docx`是Word文档文件名,需要将它替换为实际的文件名。在实际使用中,还需要对页面样式进行调整,以适应不同的设备和屏幕大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值