返回顶部
首页 > 资讯 > 前端开发 > JavaScript >小程序上传文件至云存储的实现
  • 161
分享到

小程序上传文件至云存储的实现

2024-04-02 19:04:59 161人浏览 泡泡鱼
摘要

在小程序云开发中,要实现上传文件至云存储,有两种方案:云函数和Http api,前者是在小程序内调用的,而后者则是在小程序外调用的。本文主要讲讲如何使用HTTP API实现小程序外上

小程序开发中,要实现上传文件至云存储,有两种方案:云函数和Http api,前者是在小程序内调用的,而后者则是在小程序外调用的。本文主要讲讲如何使用HTTP API实现小程序外上传文件至云存储。

一、原料

① 小程序HTTP API
PHP
vue.js + Element UI

HTTP API需要在服务器端发起调用,而这里我选择的后端语言是php
Element UI只是作为前端举例,我们可以用它的Upload组件来上传文件,如果是原生上传则直接用input file即可。

二、PHP调用小程序HTTP API

// 获取access_token
function getAccessToken(){
    // APPID和SECRET均可在小程序后台获取
    $appid = 'APPID';
    $secret = 'SECRET';
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=". 
$appid ."&secret=". $secret;
    $res = curl_get($url);  // 使用GET方式请求微信接口
    $res = JSON_decode($res,1);
    return $res['access_token'];
}

// 上传文件到小程序云存储
function upload(){
    $path = $_REQUEST['path'];
    $url = "https://api.weixin.qq.com/tcb/uploadfile?access_token=". getAccessToken();
    $data = array ('path' => $path,'env' => APP_CLOUD_ID);  // APP_CLOUD_ID是你小程序的云环境ID
    $res = json_decode(request($url, $data),1);
    $fileName = $_FILES['file']['tmp_name'];
    $handle = fopen($fileName,"r");
    $file = fread($handle,filesize($fileName));
    curl_post(
        $res['url'], 
        array (
            'key' => $path,
            'Signature' => $res['authorization'],
            'x-cos-security-token' => $res['token'],
            'x-cos-meta-fileid' => $res['cos_file_id'],
            'file' => $file,
        )
    );
    echo json_encode(array(
        'code' => 200,
        'msg' => '文件上传成功',
        'data' => $res['file_id']
    ));
}

// get请求
function curl_get($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    return curl_exec($ch);
    curl_close($ch);
}

// post请求
function curl_post($url, $data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    return curl_exec($ch);
    curl_close($ch);
}

有关文件上传的HTTP API具体用法可参考:获取文件上传链接

三、使用Element UI调用PHP接口

// VueJS
<template>
  <el-upload
      class="avatar-uploader"
      :action=""
      accept="image/*,.jpg"
      :http-request="upload"
      :show-file-list="false"
  >
    <img v-if="image" :src="image" class="avatar" />
    <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  </el-upload>
</template>

<script>
import axiOS from 'axios'
const request = axios.create({
  baseURL: process.env.BASE_API, // api 的 base_url
  timeout: 20000
});

export default {
  data() {
    return {
      image: ''
    };
  },
  methods: {
    async upload(e) {
      let fORMData = new FormData();
      let path = `upload/${new Date().getTime() + e.file.name.match(/\.(.*)/)[0]}`;
      formData.append("path", path);
      formData.append("file", e.file);
      await request({
        url: '/api/upload',  // php提供的上传接口
        method: 'post',
        headers: {
            "Content-Type": "multipart/form-data",//设置headers
        },
        data: formData
      });
      this.image = '【小程序云存储域名】' + path;
    }
};
</script>

结束语

以上仅仅只是最近项目的摘录和总结,由于涉及到一些项目隐私,所以代码并不是特别完整,但大体思路就是如此,已通过实践检验可行,希望对一些正好有此需求的朋友有所帮助!

到此这篇关于小程序外上传文件至云存储的实现的文章就介绍到这了,更多相关小程序外上传文件至云存储内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 小程序上传文件至云存储的实现

本文链接: https://lsjlt.com/news/163517.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 小程序上传文件至云存储的实现
    在小程序云开发中,要实现上传文件至云存储,有两种方案:云函数和HTTP API,前者是在小程序内调用的,而后者则是在小程序外调用的。本文主要讲讲如何使用HTTP API实现小程序外上...
    99+
    2024-04-02
  • MinIO实现文件上传存储
    MinIO 目录MinIO概念MinIO下载安装启动下载安装启动 MinIO实现上传文件导入maven坐标在application文件添加配置实现代码 目录 MinIO概念...
    99+
    2023-09-02
    java
  • Python的Django中将文件上传至七牛云存储的代码分享
    最近在写的一个django小项目需要实现用户上传图片的功能,使用到了七牛云存储,特此记录下来。这里我使用的七牛python SDK 版本是7.0.3,函数使用上可能会与旧版有些不同。 原本文件上传需要先把文...
    99+
    2022-06-04
    中将 传至 代码
  • 微信小程序uploadFile接口实现文件上传
    目录写在前面创建前端页面写入js事件-完成上传操作配置后端php接口文件实现上传功能完善上传功能写在前面 上节中我们讲到小程序的request请求,掌握了基本的网络请求方式,这节我们...
    99+
    2024-04-02
  • 【uniapp小程序】uploadFile文件上传
    目录 写在前面创建前端页面写入js事件(完成上传操作)配置后端php接口文件实现上传功能完善上传功能 最后 写在前面 上节中我们讲到小程序的request请求,掌握了基本的网络请...
    99+
    2023-09-02
    uni-app 小程序 php 微信小程序
  • 使用微信小程序实现文件上传功能
    标题:使用微信小程序实现文件上传功能随着微信小程序的兴起,越来越多的企业和开发者开始利用微信小程序为用户提供便捷的服务。在很多情况下,用户需要上传文件。如果能够在微信小程序中实现文件上传功能,将会极大地提升用户体验。本文将介绍如何使用微信小...
    99+
    2023-11-21
    功能 文件上传 微信小程序
  • 微信小程序如何实现ES6Promise.all批量上传文件
    这篇文章主要介绍微信小程序如何实现ES6Promise.all批量上传文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信小程序 ES6Promise.all批量上传文件实现代码客...
    99+
    2024-04-02
  • 微信小程序怎么实现ES6批量上传文件
    这篇文章主要讲解了“微信小程序怎么实现ES6批量上传文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序怎么实现ES6批量上传文件”吧!微信小程序 ES6Promise.all批量上...
    99+
    2023-06-17
  • 微信小程序实现多文件或者图片上传
    本文实例为大家分享了微信小程序实现多文件或者图片上传的具体代码,供大家参考,具体内容如下 html <view class="list1">     <view c...
    99+
    2024-04-02
  • Java实现文件上传保存
    本文实例为大家分享了Java实现文件上传保存的具体代码,供大家参考,具体内容如下 框架 Spring Boot + FreeMarker + Ajax 第一次尝试Spring Boo...
    99+
    2024-04-02
  • 微信小程序如何实现文件上传、下载操作
    这篇文章将为大家详细讲解有关微信小程序如何实现文件上传、下载操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:前面介绍了微信小程序登录API与获取用户信息操作。...
    99+
    2024-04-02
  • 微信小程序开发文件上传功能怎么实现
    这篇文章主要介绍了微信小程序开发文件上传功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序开发文件上传功能怎么实现文章都会有所收获,下面我们一起来看看吧。保存图片,我认为有两处需要保存&nbs...
    99+
    2023-06-26
  • 微信小程序怎么实现多文件或图片上传
    本文小编为大家详细介绍“微信小程序怎么实现多文件或图片上传”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序怎么实现多文件或图片上传”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。html<view&...
    99+
    2023-07-02
  • javaweb实现文件上传小功能
    本文实例为大家分享了javaweb实现文件上传的具体代码,供大家参考,具体内容如下 1.创建文件上传页面 <%@ page contentType="text/html;cha...
    99+
    2024-04-02
  • SpringBoot整合阿里云OSS对象存储服务实现文件上传
    目录1. 准备工作: 2. 配置: 3. 详细代码: 4. 测试: 1. 准备工作: 一、首先登录阿里云OSS对象存储控制台创建一个Bucket作为你的存储空间。 二、创建Acce...
    99+
    2024-04-02
  • php 文件上传至OSS及删除远程阿里云OSS文件
    删除的时候记住不要带域名,也不要带'/'这个路径符号,如全路径是:'https://hxty.oss-cn-beijing.aliyuncs.com/data/pdf/contrac...
    99+
    2024-04-02
  • Spring boot实现上传文件至本地或服务器
    大家好 我是程序猿小张 图片文件上传是项目中必不可少的一个功能,上传的地址也当然是优先选择第三方的对象存储,例如七牛云、阿里云等等,但是当中的话只有七牛云是有一个免费额度的,其他都是要收钱的。所以就想...
    99+
    2023-09-01
    spring boot 服务器 后端
  • 如何在Alma Linux上实现安全的文件传输和存储
    在Alma Linux上实现安全的文件传输和存储可以通过以下几种方式来实现: 使用SSH(Secure Shell):SSH是一...
    99+
    2024-04-24
    Alma Linux
  • NodeJS使用七牛云存储上传文件的方法
    1-准备工作 确认安装node和npm 安装 qiniu,formidable,express模块 npm install --save qiniu formidable [x] 导入模块 le...
    99+
    2022-06-04
    上传文件 方法 NodeJS
  • vue.js云存储实现图片上传功能
    前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、对象存储 示对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,具有...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作