vue 七牛上传图片

这是我多年前写的 很多都忘了 从github找出来的

<template>
  <div>
  <w-subnav ref="subNav"></w-subnav>
    <div class="flex1 to-save-reload" v-model="ProgramIds"&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
前端生成七牛云的上传凭证(token)一般需要结合后端来完成,因为生成凭证需要使用七牛云的密钥,为了安全起见,密钥一般保存在后端,前端通过与后端的交互获取凭证。 以下是一个前端与后端结合生成七牛云上传凭证并上传图片的示例: 1. 后端代码(Node.js): ```javascript const qiniu = require('qiniu'); const accessKey = 'YOUR_QINIU_ACCESS_KEY'; const secretKey = 'YOUR_QINIU_SECRET_KEY'; function generateQiniuToken() { const mac = new qiniu.auth.digest.Mac(accessKey, secretKey); const options = { scope: 'YOUR_QINIU_BUCKET_NAME', expires: 3600, // 凭证有效时间,单位:秒 }; const putPolicy = new qiniu.rs.PutPolicy(options); const uploadToken = putPolicy.uploadToken(mac); return uploadToken; } // 在路由处理函数中返回生成的上传凭证给前端 app.get('/qiniu/token', (req, res) => { const token = generateQiniuToken(); res.json({ token }); }); ``` 上述代码使用了qiniu-sdk库来生成七牛云上传凭证。你需要替换YOUR_QINIU_ACCESS_KEY、YOUR_QINIU_SECRET_KEY和YOUR_QINIU_BUCKET_NAME为你自己的七牛云密钥和存储空间名称。 2. 前端代码(Vue.js): ```javascript import axios from 'axios'; methods: { uploadImage() { uni.chooseImage({ success: (res) => { const tempFilePaths = res.tempFilePaths; this.getQiniuTokenAndUpload(tempFilePaths[0]); }, }); }, getQiniuTokenAndUpload(filePath) { axios.get('/qiniu/token') // 向后端请求获取上传凭证 .then((response) => { const token = response.data.token; this.uploadToQiniu(token, filePath); }) .catch((error) => { console.log(error); }); }, uploadToQiniu(token, filePath) { const url = 'https://upload.qiniup.com'; const key = Date.now() + '.jpg'; // 设置文件名,这里使用当前时间戳作为文件名 uni.uploadFile({ url, filePath, name: 'file', formData: { token, key, }, success: (res) => { // 上传成功,处理返回的数据 console.log(res.data); }, fail: (err) => { // 上传失败,处理错误信息 console.log(err); }, }); }, } ``` 上述代码使用了axios库发送GET请求获取后端生成的上传凭证,然后调用uni.uploadFile方法将图片上传到七牛云存储。 请确保替换YOUR_QINIU_ACCESS_KEY、YOUR_QINIU_SECRET_KEY和YOUR_QINIU_BUCKET_NAME为你自己的七牛云密钥和存储空间名称。同时,你还需要根据实际情况修改后端路由路径和前端请求路径。 这样,当用户点击按钮时,前端会通过后端获取七牛云的上传凭证,并将选择的图片上传到七牛云存储中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suddle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值