微信小程序?qū)崿F(xiàn)上傳word、txt、Excel、PPT等文件功能
正文:
目前小程序沒有能實現(xiàn)此功能的 API 所以我這里通過使用 web-view 實現(xiàn);
實現(xiàn)流程:
1. 在小程序后臺配置業(yè)務(wù)域名
2. 在服務(wù)器寫一個html,實現(xiàn)表單上傳文件
3.后端php接收文件并存到一個服務(wù)器文件夾,把文件名存到數(shù)據(jù)庫以后檢索用
4.在微信小程序創(chuàng)建一個頁面,里面使用web-view達(dá)到上傳文件的目的;
效果圖:
具體實現(xiàn):
1. 在小程序后臺配置業(yè)務(wù)域名
2. 在服務(wù)器寫一個html,實現(xiàn)表單上傳文件
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標(biāo)簽隱藏掉 --> <script type="text/javascript"> function upload() { $("#form1").submit(); var t = setInterval(function() { //獲取iframe標(biāo)簽里body元素里的文字。即服務(wù)器響應(yīng)過來的"上傳成功"或"上傳失敗" var word = $("iframe[name='frame1']").contents().find("body").text(); if(word != "") { // alert(word); //彈窗提示是否上傳成功 // clearInterval(t); //清除定時器 } }, 1000); } </script> </body> </html>
3.后端php接收文件并存到一個服務(wù)器文件夾,把文件名存到數(shù)據(jù)庫以后檢索用
up_file.php 文件:
<?php header("Content-Type:text/html;charset=utf8"); header("Access-Control-Allow-Origin: *"); //解決跨域 header('Access-Control-Allow-Methods:POST');// 響應(yīng)類型 header('Access-Control-Allow-Headers:*'); // 響應(yīng)頭設(shè)置 $link=mysql_connect("localhost","root","root"); mysql_select_db("new_test", $link); //選擇數(shù)據(jù)庫 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; //插入數(shù)據(jù)到數(shù)據(jù)庫 $strsql = "insert into name (fileName) values('$name')"; //mysql_query() 函數(shù)執(zhí)行一條 MySQL 查詢。SELECT,SHOW,EXPLAIN 或 DESCRIBE 都需要用這個函數(shù)執(zhí)行 $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"] . " 文件已經(jīng)存在. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); // echo "文件已經(jīng)被存儲到: " . "upload/" . $_FILES["file"]["name"]; } ?>
4.在微信小程序創(chuàng)建一個頁面,里面使用web-view達(dá)到上傳文件的目的;
web.wxml文件
<!--pages/web/web.wxml--> <web-view src='https://dwb.lynncain.cn/H5/'></web-view>
注:微信小程序web-view標(biāo)簽使用如上,無需多余代碼。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
很不錯的兩款Bootstrap Icon圖標(biāo)選擇組件
這篇文章主要介紹了不容錯過的兩款Bootstrap Icon圖標(biāo)選擇組件,支持自定義的圖標(biāo),拿出來分享下,絕對的干貨,感興趣的小伙伴們可以參考一下2016-01-01JS與Jquery獲取屏幕、瀏覽器、頁面的寬度和高度對比整理
頁面的展示,從外到內(nèi)的容器為:屏幕、瀏覽器以及頁面本身。HTML元素展現(xiàn)在頁面內(nèi),頁面展現(xiàn)在瀏覽器內(nèi),而瀏覽器展現(xiàn)在屏幕內(nèi)。通過Js的一些對象可以獲取這些容器的高度、寬度。容器的尺寸是指當(dāng)前分辨率下的高度和寬度(分辨率不同,值就不相同)。2023-02-02百度UEditor編輯器如何關(guān)閉抓取遠(yuǎn)程圖片功能
這篇文章主要介紹了百度UEditor編輯器如何關(guān)閉抓取遠(yuǎn)程圖片功能,需要的朋友可以參考下2015-03-03