element-upload+Vue腾讯云COS上传文件

依赖相关

通过npm i cos-js-sdk-v5 --save安装 SDK 依赖

// 导入 cos 模块,挂载到Vue上,后续调用


const COS = require('cos-js-sdk-v5')
var cos = new COS({
  SecretId: '',//查看cos文档获取
  SecretKey: ''//查看cos文档获取
})
Vue.prototype.$COS =cos;

自定义请求函数

httpRequestFn(res) {
      console.log(res);
      //对象需要提前创建
      this.$COS.putObject(
        {
          //利用在mian中的zzk存储桶,请不要不要攻击zzk的存储服务器
          Bucket: "存储桶" /* 必须:存储桶 */,
          Region: "ap-guangzhou" /* 存储桶所在地域,必须字段 */,
          Key: "image/" + res.file.name /* 必须 :目录/文件名 */,
          StorageClass: "STANDARD", // 上传模式
          Body: res.file, // 上传文件对象
          onProgress: function (progressData) {
            // 进度条
            console.log(JSON.stringify(progressData));
          },
        },
        (err, data) => {
          // 注意用箭头函数,否则会出现this的指向问题
          console.log(err || data);
          if (data) {
            // 上传成功
            this.tmForm.logoUrl = `http://${data.Location}`;
          }
        }
      );
    },

配置element-upload,http-request属性 覆盖默认的上传行为,可以自定义上传的实现,使用自定义请求函数httpRequestFn,action=“#”
具体查看element上传组件API
https://element.eleme.cn/#/zh-CN/component/upload

<el-upload
            class="avatar-uploader"
            action="#"
            :http-request="httpRequestFn"
            :show-file-list="false"
          >
            <img v-if="tmForm.logoUrl" :src="tmForm.logoUrl" class="avatar" />
            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
            <div slot="tip" class="el-upload__tip">
              只能上传jpg/png文件,且不超过500kb
            </div>
          </el-upload>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="addOrUpdateTradeMark"
          >确 定</el-button
        >
      </div>
    </el-dialog>

不懂的地方可以联系博主

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue中,你可以结合`element-ui`的`el-upload`组件和`vue-cropper`库来实现图片上和裁剪功能。以下是一个基本的步骤: 1. 安装依赖: 首先,你需要安装这两个库,如果你还没有安装,可以在项目目录下运行: ```bash npm install element-ui vue-cropper ``` 2. 引入组件: 在你的Vue文件中,引入这两个组件: ```javascript import { ElUpload } from 'element-ui'; import VueCropper from 'vue-cropper'; ``` 3. 在模板中使用`el-upload`和`vue-cropper`: ```html <template> <div> <el-upload :action="uploadUrl" :on-success="handleSuccess" :on-change="handleChange" :before-upload="beforeUpload" ref="upload" > <el-button size="small" type="primary">点击选择图片</el-button> </el-upload> <vue-cropper ref="cropper" :img-url="croppedImageUrl" :output-type="outputType"></vue-cropper> </div> </template> ``` 4. 编写方法: - `handleSuccess(response, file)`:处理上成功后的回调,这里可以更新`croppedImageUrl`。 - `handleChange(file)`:处理文件变化,可以预览图片并显示到cropper组件中。 - `beforeUpload(file)`:在上前的钩子,可以在这里做些验证或处理。 5. 数据绑定: ```javascript data() { return { uploadUrl: 'your-upload-url', croppedImageUrl: '', outputType: 'image/jpeg', // 可选类型:image/jpeg, image/png, image/webp }; }, methods: { handleSuccess(response, file) { // 在这里处理上成功的响应并更新croppedImageUrl this.croppedImageUrl = response.data.url; }, handleChange(file) { this.$refs.upload.fileList = file; // 将文件信息递给cropper this.$refs.cropper.src = file.url; // 设置cropper的图片源 }, beforeUpload(file) { // 这里可以根据需求检查文件大小、类型等 } } ``` 注意替换`your-upload-url`为你实际的图片上地址。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值