>백엔드 개발 >PHP 튜토리얼 >백엔드 PHP를 통해 WeChat 애플릿에서 파일을 다운로드하는 방법

백엔드 PHP를 통해 WeChat 애플릿에서 파일을 다운로드하는 방법

jacklove
jacklove원래의
2018-06-11 17:32:093331검색


Scenario: WeChat 애플릿은 wx.downloadFile() API를 호출하여 파일을 다운로드하고, PHP 백엔드는 처리를 처리하고 파일 프로세스를 반환합니다.
Process:
1 애플릿은 파일을 다운로드해야 하는 파일 목록을 표시합니다.
2. PHP를 다운로드하고 요청하려면 클릭하세요. 인터페이스에는 다운로드하려는 파일의 이름이 포함되어 있습니다.
3. PHP에서 해당 매개변수를 받은 다음 폴더를 검색하여 파일이 있는지 확인하세요. 4. 파일을 찾은 후 파일을 애플릿으로 반환합니다.
5. 애플릿은 백엔드에서 반환된 파일을 저장하고 클릭하여 파일을 연 다음 애플릿 코드를 미리 봅니다.
wxml

<view>文件列表</view>
<view wx:for=&#39;{{search_store}}&#39; wx:key=&#39;{{index}}&#39;>
  <view bindtap=&#39;dom&#39; id=&#39;{{index}}&#39;>文件名:{{item.fileName}} 点击下载</view>
</view>

js

  dom: function (e) {
    var index = e.currentTarget.id;
    var data = this.data.search_store[index].fileName
    var that = this;
    wx.downloadFile({
      url: &#39;https://dwb.lynncain.cn/H5/dom.php?str=&#39; + data, //下载路径携带 参数=文件名
      success: function (res) {
        console.log(res.tempFilePath)
        wx.saveFile({ //下载成功后保存
          tempFilePath: res.tempFilePath,
          success: function (res) {
           wx.showToast({
             title: &#39;下载成功!&#39;,
           })
           wx.getSavedFileList({ //获取下载的文件列表保存到data
             success: function (rrr) {
               console.log(rrr.fileList)
               that.setData({
                 fileList: rrr.fileList
               })
             }
           })
          }
        })
      }
    })
  },

php

<?php
    header("Access-Control-Allow-Origin: *"); //解决跨域
    header(&#39;Access-Control-Allow-Methods:GET&#39;);// 响应类型  
    header(&#39;Access-Control-Allow-Headers:*&#39;); // 响应头设置 
    $link=mysql_connect("localhost","root","root"); 
    mysql_select_db("new_test", $link); //选择数据库
    mysql_query("SET NAMES utf8");//解决中文乱码问题
error_reporting(0);
$str = $_GET[&#39;str&#39;];
$file_path="upload/".$str;
if (! file_exists ( $file_path )) {    
header(&#39;HTTP/1.1 404 NOT FOUND&#39;);  
} 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 ();    
}    
?>

이 기사에서는 WeChat 애플릿에서 파일을 다운로드하고 백엔드 PHP를 통해 처리하는 방법을 소개합니다. 더 많은 관련 지식을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 추천 :

버블링, 이분법 삽입, 퀵 정렬 알고리즘 소개


중단점 이력서를 지원하는 PHP 파일 다운로드 클래스 설명


PHP 태그 속성 클래스를 통해 html을 필터링하는 방법

위 내용은 백엔드 PHP를 통해 WeChat 애플릿에서 파일을 다운로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.