微信小程序实现上传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 相关文章推荐
jQuery之$(document).ready()使用介绍
Apr 05 Javascript
JS检测图片大小的实例
Aug 21 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
Jun 06 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
vue.js父组件使用外部对象的方法示例
Apr 25 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
Jul 11 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
Aug 25 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 Javascript
angularjs实现分页和搜索功能
Jan 03 Javascript
Vue shopCart 组件开发详解
Jan 26 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
2018/05/24 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
python 判断一个进程是否存在
2009/04/09 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
django 单表操作实例详解
2019/07/30 Python
学Python 3的理由和必要性
2019/11/19 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
小学运动会演讲稿
2014/08/25 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
Java实现简单小画板
2022/06/10 Java/Android