PHP怎么实现将Word文件保存到SQL Server数据库
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章将为大家详细讲解有关PHP怎么实现将Word文件保存到SQL Server数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。完成界面:前端的页面文件:
千家信息网最后更新 2025年01月31日PHP怎么实现将Word文件保存到SQL Server数据库
这篇文章将为大家详细讲解有关PHP怎么实现将Word文件保存到SQL Server数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
完成界面:
前端的页面文件:
layui
后台PHP文件:
0){ $returnArr['c05']='文件有错误';} $uploadFile = $_FILES["wordFile"];//得到上传的文件$wordBlob=file_get_contents($uploadFile['tmp_name']);file_put_contents("123.docx",$wordBlob , FILE_APPEND);//将文件内容写到磁盘上//将内容字符串转为十六进制字符串$wordHexData = "0x".bin2hex($wordBlob); $returnArr['c01']=$C01;$returnArr['c02']=$C02;$returnArr['c03']=$C03;$returnArr['c04']=$C04; $returnArr['c06']=$C06;$returnArr['c07']=$C07;$returnArr['c08']=$C08;$returnArr['c09']=$C09; //准备写入数据库require 'ZTBLinkConfig.php';//准备插入数据$sql = "insert into HtTemplateFile(c01,c02,c03,c04,c06,c07,c08,c09,c05) values('$C01','$C02','$C03','$C04','$C06','$C07','$C08','$C09',$wordHexData)";$result =$ZTBConn->query($sql);$returnArr['c05']=$result; //读出来写到磁盘上,这样可以判断上传文件是否真的写入了。// $sql = "select * from HtTemplateFile where c01='模板文件名' and c08='项目属性' and c09='2021'";// $result =$ZTBConn->query($sql);// while($row=$result->fetch()){// $hexData= $row['c05'];// } // $binData=hex2bin($hexData);// file_put_contents("333.docx",$hexData , FILE_APPEND);//将文件内容写到磁盘上 echo json_encode($returnArr,JSON_UNESCAPED_UNICODE);?>
注意点:
1、美化上传按钮
普通的文件上传按钮不好看,与整个界面不协调,放上一个DIV后再放一个LayUI的按钮就可以了,然后使用事件代理,触发实际文件的上传,是change事件。
document.getElementById('selectWord').addEventListener('click',function(){ $("#readFile").trigger("click"); });
2、封装上传的数据
使用formData,可以封装整个form。
let formID = document.getElementById("uploadFile");let formData = new FormData(formID);//FormData构造器接收的是一个form的DOM对象
也可以按照要求逐个添加。
let wordFile = document.getElementById('readFile');//用FormData对象对表单数据进行封装const fd = new FormData();//FormData构造器接收的是一个form的DOM对象 fd.append("wordFile",wordFile.files[0]);//Word文件数据fd.append("c01",$('#Dc01').val());//模板文件名fd.append("c02",currentUser);//上传人fd.append("c03",currentDatetime);//上传时间fd.append("c04",$('#Dc04').val());//简要说明fd.append("c06",$('#Dc06').val());//项目名称fd.append("c07",$('#Dc07').val());//子项目名称fd.append("c08",$('#Dc08').val());//项目类型fd.append("c09",$('#Dc09').val());//适用年度
既然是对象,最好使用const定义。
完整的上传,使用ajax。
$.ajax({ url: 'ZTBHTTemplateFileAdd.php', type: "POST", data: fd, dataType: "JSON", async: true, processData: false,//设置为false,JQuery则不对数据进行序列化 contentType: false,//设置为false,JQuery则不设Content-Type请求头 beforeSend: function(xhr){ console.log('开始!'); }, complete: function(xhr,status){ console.log('完成!'); }, error: function(xhr,status,error){ console.log('请求出错!'); }, success: function(result){ console.log('表单提交成功!'); } }); return false;//阻止表单的默认提交事件 }
注意,返回值一定要是JSON格式!!!
3、接收上传的数据,我为了检查数据,是生成在磁盘上,这样就好判断上传的结果,保存到数据库后也是先取出来再写到磁盘上来判断。
保存的时候需要将数据转成16进制的,读取出来就不用再转了!
写入数据库前写入磁盘:
$uploadFile = $_FILES["wordFile"];//得到上传的文件$wordBlob=file_get_contents($uploadFile['tmp_name']);file_put_contents("123.docx",$wordBlob , FILE_APPEND);//将文件内容写到磁盘上//将内容字符串转为十六进制字符串$wordHexData = "0x".bin2hex($wordBlob);
从数据库中读出来再写入磁盘:
//读出来写到磁盘上,这样可以判断上传文件是否真的写入了。$sql = "select * from HtTemplateFile where c01='模板文件名' and c08='项目属性' and c09='2021'";$result =$ZTBConn->query($sql);while($row=$result->fetch()){ $hexData= $row['c05'];} file_put_contents("333.docx",$hexData , FILE_APPEND);//将文件内容写到磁盘上
MS SQL Server 2014的文件字段为image。
关于"PHP怎么实现将Word文件保存到SQL Server数据库"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文件
数据
磁盘
对象
项目
数据库
内容
名称
模板
表单
文件名
事件
字符
字符串
时间
构造器
准备
封装
子项
子项目
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
银行要软件开发吗
网络安全周怎么保护
门禁系统怎么登数据库
阻止ip访问服务器
cms数据库在哪
达梦数据库 字符串长度函数
打印服务器驱动怎么删除不了
福建省数据库
软件开发和网站建设那个好
国内外关于网络安全杂志
计算机可以自学什么软件开发
网络安全教育内容记录
指数形式的数据库
中山橡胶模具制造管理软件开发
dell服务器关闭内存保护
cscd是全文数据库
软件开发注重学历吗
代理服务器端口被占
数据库运行一段时间很卡
河间软件开发有限公司
手机app连接数据库
压缩数据库mssql
达梦数据库 字符串长度函数
域控服务器需要做什么
软件开发需要什么体系
用户操作权限数据库怎么实现
网络安全制度落实情况总结
北仑手机游戏软件开发地址
如何定义服务器字体
易语言利用网页做激活码服务器