微信小程序实现上传word、txt、Excel、PPT等文件功能


Posted in Javascript onMay 23, 2019

正文:

目前小程序没有能实现此功能的 API 所以我这里通过使用 web-view 实现;

实现流程:

1. 在小程序后台配置业务域名

2. 在服务器写一个html,实现表单上传文件

3.后端php接收文件并存到一个服务器文件夹,把文件名存到数据库以后检索用

4.在微信小程序创建一个页面,里面使用web-view达到上传文件的目的;

效果图:

微信小程序实现上传word、txt、Excel、PPT等文件功能

具体实现:

1. 在小程序后台配置业务域名

微信小程序实现上传word、txt、Excel、PPT等文件功能

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标签使用如上,无需多余代码。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript的模块化:封装(闭包),继承(原型) 介绍
Jul 22 Javascript
Jquery动态进行图片缩略的原理及实现
Aug 13 Javascript
javascript计时器详解
Feb 28 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
Nov 25 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
JavaScript实现简单Tip提示框效果
Apr 20 Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 Javascript
ES6 javascript的异步操作实例详解
Oct 30 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
axios post提交formdata的实例
Mar 16 Javascript
layui实现给某一列加点击事件
Oct 26 Javascript
微信小程序实现简单文字跑马灯
May 26 Javascript
微信小程序实现文件、图片上传功能
Aug 18 #Javascript
微信小程序实现图片上传
May 23 #Javascript
WebSocket的简单介绍及应用
May 23 #Javascript
webpack4 SplitChunks实现代码分隔详解
May 23 #Javascript
微信小程序实现的picker多级联动功能示例
May 23 #Javascript
js console.log打印对象时属性缺失的解决方法
May 23 #Javascript
Node.js+ELK日志规范的实现
May 23 #Javascript
You might like
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
php中url函数介绍及使用示例
2014/02/13 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
详细分析vue响应式原理
2020/06/22 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
python获取目录下所有文件的方法
2015/06/01 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
业务代表的岗位职责
2013/11/16 职场文书
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
外语系毕业生自荐信范文
2013/12/16 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
2015年公司工作总结
2015/04/25 职场文书
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript