当前位置: 首页 > news >正文

菏泽县建设局网站/手机端搜索引擎排名

菏泽县建设局网站,手机端搜索引擎排名,wordpress开发手册下载地址,网页设计主题及图片vue阿里oss存储——封装上传组件——uploadFileSingle 下面组件是支持单个文件上传的,可以通过指定accept字段来限制上传文件的类型。 如果需要多个文件同时上传,则需要对下面的组件进行稍微的改动。自行处理哈。 直接上代码: 1.组件的使用…

vue+阿里oss存储——封装上传组件——uploadFileSingle

下面组件是支持单个文件上传的,可以通过指定accept字段来限制上传文件的类型。
如果需要多个文件同时上传,则需要对下面的组件进行稍微的改动。自行处理哈。

直接上代码:

1.组件的使用

<UploadFileSinglestyle="display:inline-block;margin-left:10px;":buttonFlag="true":filePath="orderInfo.filePath"title="修改文件":accept="[{ title: '2D格式', extensions: 'dwg,dxf,pdf' },{title: '3D格式',extensions: 'step,stp,sldprt,prt,CATPart',},{ title: '压缩包', extensions: 'zip,rar' },]"max_file_size="100mb"@ok="getFile"
></UploadFileSingle>

2.回调方法

getFile(val) {console.log(val)
}

3.组件内容

<template><div class="upload-wrapper"><a-buttonv-if="buttonFlag"slot="addonAfter"type="primary":id="id":loading="loading">{{ title }}</a-button><a-inputv-elseplaceholder="请输入内容"v-model="url"@change="handleChange"allowClear><a-button slot="addonAfter" type="primary" :id="id" :loading="loading">{{title}}</a-button></a-input></div>
</template>
<script>
import uploader from "@/utils/ali-oss.js";
export default {name: "fileUpload",props: {buttonFlag: {type: Boolean,default: false,},title: {type: String,default: "上传",},id: {type: String,default: "fileSingle",},filePath: {type: String,default: "",},extraData: {type: Object,default: function() {return {};},},max_file_size: {type: String,default: "10mb",},accept: {type: Array,default: () => [],},},watch: {filePath(newVal, oldVal) {this.url = newVal;},},data() {return {url: "",loading: false,};},mounted() {this.url = this.filePath;this.$nextTick(() => {this.initUploader();});},methods: {initUploader() {let that = this;uploader({that: this,el: this.id,extraData: that.extraData,accept: this.accept,max_file_size: this.max_file_size,file_added(uploader, files) {that.loading = true;},file_uploaded(url, file) {const path = url.host + url.key + (file.target_name || file.name);that.loading = false;that.$emit("ok", path, that.id);that.$message.success("上传成功");},}).init();},handleChange() {this.$emit("ok", this.url, this.id);},},
};
</script><style lang="less" scoped>
.upload-wrapper {/deep/ .ant-input-group-addon {padding: 0;border: none;background-color: transparent;button {border-radius: 0 4px 4px 0;}}
}
</style>

4.ali-oss.js文件

/*** plupload中文文档* https://www.phpin.net/tools/plupload/*/
import plupload from "plupload";
import { getOssToken } from '@/services/uploader/uploader';
let host = '';
let key = '';
export default ({that = "", //vue实例el = "", //点击触发上传的元素extraData = {}, //获取上传参数接口的额外参数accept = [], //限制文件类型multi_selection = false, //是否多文件上传limitNum = 0,prevent_duplicates = false, //是否允许选取重复文件max_file_size = '10mb', //文件大小限制,传数字默认单位b,可以数字和单位组合unique_names = false, //生成唯一的文件名file_added = new Function(),file_uploaded = new Function(),uploader_progress = new Function(),
}) => {if (!el) {console.log("el 不能为空")return;}if (!that) {console.log("请传入this")return;}console.log('获取文件类型', accept);const uploader = new plupload.Uploader({runtimes: 'html5,flash,silverlight,html4',// 服务器上传地址,后续获取上传token后会通过setOption进行设置覆盖url: 'http://oss.aliyuncs.com',// 上传文件类型限制filters: {mime_types: accept,// 限制上传文件大小max_file_size: max_file_size,// 不允许选取重复文件prevent_duplicates: prevent_duplicates},unique_names: unique_names})// 设置上传配置uploader.setOption({browse_button: el,multi_selection: multi_selection});// 文件上传进度uploader.bind("UploadProgress", (uploader, file) => {uploader_progress(file);})// 文件上传成功uploader.bind("FileUploaded", (up, file, info) => {file_uploaded({ host, key }, file);})// 发生错误uploader.bind("Error", (up, info) => {switch (info.code) {case -600:if (/[a-zA-Z]+/g.test(max_file_size)) {that.$message.error('文件不能大于' + max_file_size);} else {that.$message.error('文件不能大于' + max_file_size + 'b');}break;default:that.$message.error(info.message);break;}that.loading = false;})// 文件添加成功并且上传uploader.bind("FilesAdded", (up, files) => {if (multi_selection && limitNum > 0 && (up.files.length > limitNum)) {that.$message.error(`只能选择${limitNum}个文件上传`);up.files.forEach((file, i) => {uploader.splice();})return false;}file_added(uploader, files, el);// 请求签名、临时host、callback//这里替换成项目对应后端接口getOssToken(extraData).then(res => {host = res.host;let policyBase64 = res.policy;let accessid = res.accessId;let signature = res.signature;let callbackbody = res.callback;key = res.dir;let new_multipart_params = {'key': key + '${filename}','policy': policyBase64,'OSSAccessKeyId': accessid,'success_action_status': '200', //让服务端返回200,不然,默认会返回204'callback': callbackbody,'signature': signature,};uploader.setOption({'url': host,'multipart_params': new_multipart_params});uploader.start();}).catch(() => {that.loading = false;})})return uploader;
}

完成!!!多多积累,多多收获!!!

http://www.lbrq.cn/news/747559.html

相关文章:

  • 域名服务商网站/免费建站平台
  • 福永镇网站建设/杭州seo外包
  • 平台营销策略/seo经典案例分析
  • 网页设计网站开发需要哪些知识/哪些平台可以免费打广告
  • 湖南长沙益阳网站建设/如何找做网站的公司
  • 专业返利网站建设/免费加精准客源
  • 小男生和大人做av网站大全/软文广告范文
  • 网站测试页面怎么做/软文有哪些
  • 网站建设免费代理/举三个成功的新媒体营销案例
  • 建设厅网站ca验证失败/域名比价网
  • 网站空间文件删不掉/友情链接交换网
  • 房地产网站建设方案/学校网站建设
  • 哈尔滨最新/seo外包公司需要什么
  • 台州市建设项目规划网站/哈尔滨优化调整人员流动管理
  • 有创意做网站找投资/seo软件全套
  • 网页设计公司建网站网站设计/网上培训机构
  • 会用wordpress建站/百度行发代理商
  • 云南做网站找谁/市场调研报告怎么写范文
  • 给我做网站的人老是给我留点尾巴/网站关键字排名优化
  • 哪些网站是做设计的/百度识图在线识别网页版
  • 寻花问柳一家专门做男人的网站/seo技术培训唐山
  • 手机非法网站怎么解决方案/seo免费培训视频
  • 成都有哪些比较做网站比较好的/广西南宁做网站的公司
  • 宝塔怎么创建网站/百度快照收录
  • 深圳网站设计哪家比较好/超八成搜索网站存在信息泄露问题
  • 找关键词的三种方法/seo店铺描述例子
  • 如何做有亮点的网站建设方案/企业营销策划方案范文
  • 合肥专业做网站的公司有哪些/前端开发
  • wordpress related posts 汉化/宁波优化seo是什么
  • 开发一款社交软件需要多少钱/seo外包大型公司
  • 决策树1.1
  • Spring AOP 和 Spring 拦截器
  • 面试题储备-MQ篇 3-说说你对Kafka的理解
  • Linux设备树简介
  • 基于深度学习的车牌检测识别系统:YOLOv5实现高精度车牌定位与识别
  • YoloV9改进策略:Block改进-DCAFE,并行双坐标注意力机制,增强长程依赖与抗噪性-即插即用