码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 小程序+阿里Oss上传临时文件


    以 Taro 框架为例(微信小程序可以直接将 Taro 替换为 wx)。

    首先获取图片

    1. Taro.chooseImage({
    2. count: 1,
    3. sizeType: ['original', 'compressed'],
    4. success: (result) => {
    5. // 上传图片文件的具体代码
    6. useTaroUploadFile(result.tempFilePaths[0]).then(res=> {
    7. });
    8. },
    9. fail: res => {
    10. Taro.showToast({
    11. title: res.errMsg;
    12. icon: 'error',
    13. })
    14. }
    15. })

    需要安装2个库

    yarn add crypto-js 

    yarn add js-base64

    上传具体代码

    1. export const useTaroUploadFile = (file) => {
    2. return new Promise((resolve, reject) => {
    3. // 需要获取文件的后缀,所以要调用该方法
    4. Taro.getImageInfo({
    5. src: file,
    6. success: info=>{
    7. // getSts:从后台获取上传所需要的参数,formData里面的参数可以全部由后台计算,部分也可以由前端计算
    8. getSts().then(res=> {
    9. const {bucketName, endpoint, dirPath, accessKeyId, securityToken, accessKeySecret} = res;
    10. const t = new Date();
    11. t.setHours(t.getHours() + 1);
    12. const timeNow = new Date();
    13. const policyText = {
    14. expiration: t.toISOString(), // 设置policy过期时间。
    15. conditions: [
    16. // 限制上传大小。
    17. ["content-length-range", 0, 1024 * 1024 * 1024],
    18. ],
    19. };
    20. const policy = Base64.encode(JSON.stringify(policyText));
    21. Taro.uploadFile({
    22. url: `https://${bucketName}.${endpoint}`,
    23. filePath: file,
    24. name: 'file',
    25. formData: {
    26. key: dirPath + "/" + timeNow.getTime() + '.' + info.type,
    27. policy: policy,
    28. OSSAccessKeyId: accessKeyId,
    29. signature: signature(policy, accessKeySecret),
    30. 'x-oss-security-token': securityToken // 使用STS签名时必传。
    31. },
    32. success: uploadSuccess => {
    33. if (uploadSuccess.statusCode === 204){
    34. resolve(`https://${bucketName}.${endpoint}/${dirPath}/${timeNow.getTime()}.${info.type}`)
    35. }
    36. },
    37. fail: res1 => {
    38. Taro.showToast({
    39. title: '上传失败,请重试',
    40. icon: 'error',
    41. })
    42. }
    43. })
    44. })
    45. }
    46. })
    47. })
    48. }

     其中,formData 的具体参数可以参考oss官方文档。

  • 相关阅读:
    图像处理与计算机视觉--第五章-图像分割-霍夫变换
    用Tinyproxy搭建自己的proxy server
    一步一步教你写kubernetes sidecar
    用DIV+CSS技术设计的凤阳旅游网站(web前端网页制作课作业)HTML+CSS+JavaScript
    机器学习案例(九):语言检测
    ffmpeg 之ffmpeg 整理流程分析
    Django中自定义过滤器,最详细步骤来了
    Java的基础应用
    每天一个面试题之类加载机制、spirngboot的启动机制
    高数 | 周洋鑫 冲刺预测题自用整理复习
  • 原文地址:https://blog.csdn.net/qq_41130591/article/details/133763424
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号