Scenario: The WeChat applet calls the wx.downloadFile() API to download a file, and the PHP backend performs processing and returns the file process;
Process:
1. The applet displays a list of files that need to be downloaded;
2. Click download and request the PHP interface, carrying a parameter for the name of the file you want to download;
3. Receive the parameter in PHP, and then search the folder to see if there is the file;
4. Find file and return the file to the applet;
5. The applet saves the file returned by the backend, click to open the file, and preview the code:
wxml
<view>文件列表</view> <view wx:for='{{search_store}}' wx:key='{{index}}'> <view bindtap='dom' id='{{index}}'>文件名:{{item.fileName}} 点击下载</view> </view>
dom: function (e) { var index = e.currentTarget.id; var data = this.data.search_store[index].fileName var that = this; wx.downloadFile({ url: 'https://dwb.lynncain.cn/H5/dom.php?str=' + data, //下载路径携带 参数=文件名 success: function (res) { console.log(res.tempFilePath) wx.saveFile({ //下载成功后保存 tempFilePath: res.tempFilePath, success: function (res) { wx.showToast({ title: '下载成功!', }) wx.getSavedFileList({ //获取下载的文件列表保存到data success: function (rrr) { console.log(rrr.fileList) that.setData({ fileList: rrr.fileList }) } }) } }) } }) },
<?php header("Access-Control-Allow-Origin: *"); //解决跨域 header('Access-Control-Allow-Methods:GET');// 响应类型 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); $str = $_GET['str']; $file_path="upload/".$str; if (! file_exists ( $file_path )) { header('HTTP/1.1 404 NOT FOUND'); } else { //以只读和二进制模式打开文件 $file = fopen ( $file_path, "rb" ); //告诉浏览器这是一个文件流格式的文件 Header ( "Content-type: application/octet-stream" ); //请求范围的度量单位 Header ( "Accept-Ranges: bytes" ); //Content-Length是指定包含于请求或响应中数据的字节长度 Header ( "Accept-Length: " . filesize ( $file_path ) ); //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。 Header ( "Content-Disposition: attachment; filename=" . $str ); //读取文件内容并直接输出到浏览器 echo fread ( $file, filesize ( $file_path ) ); fclose ( $file ); exit (); } ?>
Introduction to bubbling, dichotomy insertion, quick sort algorithm
Explain how PHP supports breaking Related content of the file download class that you click on to resume the upload
How to filter the html tag attribute class through php
The above is the detailed content of How to download files from WeChat applet through back-end PHP. For more information, please follow other related articles on the PHP Chinese website!