首页 > 编程语言 >微信小程序文件上传、下载

微信小程序文件上传、下载

时间:2023-06-26 18:34:05浏览次数:57  
标签:const url 微信 fileList data file res 上传 下载

微信小程序的附件上传下载。上传后并支持打开

 1、wxml 定义

                  <view>
                                <van-uploader
                                 class="autoField"
                                 bind:after-read="afterRead"
                                 accept="file"
                                 upload-text="上传附件"
                                 max-count="6"
                                 disabled="{{pageType !== 'add'}}"
                                >
                                    <text class="labelText" user-solt="label"> 上传附件</text>
                                    <van-button
                                     class="uploadButton"
                                     icon="upgrade"
                                     plain
                                     type="primary"
                                     size="small"
                                    >上传文件
                                    </van-button>
                                </van-uploader>
                                <view class="fileListBox">
                                    <view class="fileList">
                                        <text
                                         class="file"
                                         slot="button"
                                         size="small"
                                         type="default"
                                         wx:for="{{ fileList }}"
                                         wx:key="fileName"
                                         title="{{item.fileName}}"
                                         data-fileName="{{item.fileName}}"
                                         data-filePath="{{item.filePath}}"
                                         bind:tap="handleDownloadFile"
                                        >
                                            {{item.fileName}}
                                        </text>
                                    </view>
                                </view>
                            </view>

 

2、js方法定义

export const getToken = () => {
  return wx.getStorageSync(tokenKey)
}
afterRead(event) {
    const { file } = event.detail;
    const _this = this
    const header = {
      'content-type': 'application/json;charset=utf-8;',
    }
    if (getToken()) {
      header[tokenKey] = getToken()
    }
    // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
    wx.uploadFile({
      url: getApp().globalData.baseURL + '/common/sysFile/uploadWx', // 仅为示例,非真实的接口地址
      filePath: file.url,
      name: 'file',
      header,
      formData: { "biz": 'gxjw', "fileName": file.name, "fileSourceId": this.data.temp.id || '', "fileType": '1' }, // filesourceId  就是member的id
      success(res) {
        console.log(res)
        // 上传完成需要更新 fileList
        let fileList = _this.data.fileList;
        file.fileName = file.name || ''
        file.filePath = JSON.parse(res.data).message || ''
        // fileList.push({ ...file, url: res.data });
        fileList.push({ ...file });
        console.log(9999, fileList, file)
        _this.setData({ fileList });
      },
    });
  },
  handleDownloadFile(e) {
    let data = e.currentTarget.dataset
    let url = data.filepath //this.data.pageType === 'add' ? JSON.parse(data.url).message : data.filepath
    const header = {
      'content-type': 'application/json;charset=utf-8;',
    }
    if (getToken()) {
      header[tokenKey] = getToken()
    }
    const newPath = `${wx.env.USER_DATA_PATH}/${url}`;
    console.log(99999, url)
    wx.downloadFile({
      // 示例 url,并非真实存在
      url: getApp().globalData.baseURL + '/' + url, // 仅为示例,非真实的接口地址 'http://example.com/somefile.pdf',
      filePath: newPath,
      header,
      timeout: 10000,
      success: function (res) {
        wx.openDocument({
          filePath: newPath,
          showMenu: true,
      fileType: 'pdf', success: function (res) { console.log('打开文档成功') } }) } }) },

  

 

标签:const,url,微信,fileList,data,file,res,上传,下载
From: https://www.cnblogs.com/litterjoan/p/17506462.html

相关文章

  • JavaScript http大文件断点续传上传
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(I......
  • HFS.exe(网络文件服务器)汉化版下载与使用
    下载地址www.123pan.com/s/kW3DVv-QfxJA.html截图文件软件界面浏览器访问界面......
  • 编辑器atom下载
    atomdownloadhttps://pulsar-edit.dev/download.html......
  • Git工具下载与安装-1
    Git工具下载与安装一.下载1.官方地址:https://git-scm.com/点击红框中的DownloadforWinodows,跳转到下载界面2.选择适配自己电脑的版本包,以windows64为例二、安装1.安装Git没有需要用户自定义设置项,一路选择默认安装即可。三.配置系统环境变量1.添加git/bin到path进入到git安装目录......
  • 教职云智慧职教视频课件课程下载工具,如何在电脑端下载智慧职教视频课件PDF,PPT到本地
    一.安装智慧职教下载器1.获取学无止下载器https://www.xuewuzhi.cn/icve_downloader2.下载安装后,然后点击桌面快捷方式运行即可。注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。二.使用说明1.学无止下载器介绍学无止......
  • SpringCloud http大文件断点续传上传
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{    InputStreamstream=file.getInputStream();// 把文件读入    StringfilePath=request.......
  • 前端文件上传的几种交互造轮子 | 京东云技术团队
    背景前端文件上传本来是一个常规交互操作,没什么特殊性可言,但是最近在做文件上传,需要实现截图粘贴上传,去找了下有没有什么好用的组件,网上提供的方法有,但是没找完整的组件来支持cv上传,经过了解发现可以用剪贴板功能让自己的cv实现文件上传,于是自己就整合了目前几种文件上传的交互方式......
  • pycharm下载与安装
    Pycharm下载与安装一、下载官方网址:https://www.jetbrains.com/pycharm/点击下载选择windows,社区版本二、安装勾选这3个限制......
  • SpringMVC http大文件断点续传上传
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭......
  • python下载与安装
    python下载与安装一、下载官网下载地址:https://www.python.org/downloads/二、安装1.为了避免自己配置环境变量,勾选添加至path2.直接下一步3.全选点击install4.在dos窗口中输入python,出现以下界面表示安装成功......