微信小程序实现上传word、txt、Excel、PPT等文件功能
程序员文章站
2023-12-19 20:31:52
正文:
目前小程序没有能实现此功能的 api 所以我这里通过使用 web-view 实现;
实现流程:
1. 在小程序后台配置业务域名
2. 在服务器写一个html...
正文:
目前小程序没有能实现此功能的 api 所以我这里通过使用 web-view 实现;
实现流程:
1. 在小程序后台配置业务域名
2. 在服务器写一个html,实现表单上传文件
3.后端php接收文件并存到一个服务器文件夹,把文件名存到数据库以后检索用
4.在微信小程序创建一个页面,里面使用web-view达到上传文件的目的;
效果图:
具体实现:
1. 在小程序后台配置业务域名
2. 在服务器写一个html,实现表单上传文件
index.html文件
<!doctype html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" /> <meta charset="utf-8"> <title>title</title> <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.2.1.js"></script> </head> <body> <form id="form1" action="https://dwb.lynncain.cn/h5/up_file.php" target="frame1" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="button" value="上传" onclick="upload()"> </form> <iframe name="frame1" frameborder="0" height="40"></iframe> <!-- 其实我们可以把iframe标签隐藏掉 --> <script type="text/javascript"> function upload() { $("#form1").submit(); var t = setinterval(function() { //获取iframe标签里body元素里的文字。即服务器响应过来的"上传成功"或"上传失败" var word = $("iframe[name='frame1']").contents().find("body").text(); if(word != "") { // alert(word); //弹窗提示是否上传成功 // clearinterval(t); //清除定时器 } }, 1000); } </script> </body> </html>
3.后端php接收文件并存到一个服务器文件夹,把文件名存到数据库以后检索用
up_file.php 文件:
<?php header("content-type:text/html;charset=utf8"); header("access-control-allow-origin: *"); //解决跨域 header('access-control-allow-methods:post');// 响应类型 header('access-control-allow-headers:*'); // 响应头设置 $link=mysql_connect("localhost","root","root"); mysql_select_db("new_test", $link); //选择数据库 mysql_query("set names utf8");//解决中文乱码问题 error_reporting(0); if ($_files["file"]["error"] > 0) { echo "错误: " . $_files["file"]["error"] . "<br />"; } else { $dlog["name"]=$_files["file"]["name"]; $dlogs=$dlog; //echo urldecode(json_encode($dlogs)); $name =$_files["file"]["name"]; echo '上传成功!'; echo $name; //插入数据到数据库 $strsql = "insert into name (filename) values('$name')"; //mysql_query() 函数执行一条 mysql 查询。select,show,explain 或 describe 都需要用这个函数执行 $result = @mysql_query($strsql); // echo "文件名: " . $_files["file"]["name"] . "<br />"; // echo "类型: " . $_files["file"]["type"] . "<br />"; // echo "大小: " . ($_files["file"]["size"] / 1024) . " kb<br />"; } if (file_exists("upload/" . $_files["file"]["name"])) { // echo $_files["file"]["name"] . " 文件已经存在. "; } else { move_uploaded_file($_files["file"]["tmp_name"], "upload/" . $_files["file"]["name"]); // echo "文件已经被存储到: " . "upload/" . $_files["file"]["name"]; } ?>
4.在微信小程序创建一个页面,里面使用web-view达到上传文件的目的;
web.wxml文件
<!--pages/web/web.wxml--> <web-view src='https://dwb.lynncain.cn/h5/'></web-view>
注:微信小程序web-view标签使用如上,无需多余代码。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。