位置: IT常识 - 正文

Vue3中通过 input 标签 发送文件/图片给后端(vue获取input)

编辑:rootadmin
Vue3中通过 input 标签 发送文件/图片给后端

推荐整理分享Vue3中通过 input 标签 发送文件/图片给后端(vue获取input),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue怎样获取input输入的值,vue3中通过ref获取component渲染的动态组件,vue a-input,vue中@input,vue获取input输入框的内容,vue怎样获取input输入的值,vue怎样获取input输入的值,vue3中通过vite创建自定义配置,内容如对您有帮助,希望把文章链接给更多的朋友!

一;设置 input 标签 

<input type="file" ref="fileInput" @change="handleFileChange"/>

1.将 input 标签的 type 属性设置为 file 。

Vue3中通过 input 标签 发送文件/图片给后端(vue获取input)

使用 type="file" 的 <input> 元素使得用户可以选择一个或多个元素以提交表单的方式上传到服务器上,或者通过 Javascript 的 File API 对文件进行操作。

2.绑定 ref 绑定并获取该标签的DOM节点。

type="file" 的 <input> 元素身上存在一个 files 属性,其中包含了所有已选择的文件,其值是一个伪数组。

3.绑定事件,处理文件/图片上传的后续逻辑。

二;通过 FormData 实例对象处理 二进制 文件/图片(以下代码展示上传一张图片)。

// 上传之前要处理一下文件 因为文件是二进制的,要利用 FormData 实例对象进行处理const formData = new FormData();// append方法把文件添加到 FormData实例对象中 第一个参数:文件名 第二个参数:要上传的文件formData.append("smfile", files[0]);

三;获取 input 节点的 files 属性以及上传文件/图片的业务逻辑与请求发送都放在了 input 事件回调函数中进行。

由于是发送二进制数据,所以发送请求时头部字段 Content - type 要设置成 multipart / form-data

// input 发生改变时触发的回调函数 --- 验证上传的文件是否合法,然后处理文件并发送请求 const handleFileChange = (e: Event) => { const currentTarget = e.target as HTMLInputElement; if (currentTarget.files) { // 将input身上的files对象转换为数组类型 const files = Array.from(currentTarget.files); // 如果有上传限制,则对文件进行判断 if (props.beforeUpload) { // 调用判断文件是否合法的函数---由父组件自定义设置 const result = props.beforeUpload(files[0]); // 如果不合法就直接返回出去 if (!result) return; } // 上传的文件符合要求 // 上传成功之前,把上传文件状态改为 loading fileStatus.value = "loading"; // 上传之前要处理一下文件 因为文件是二进制的,要利用 FormData 实例对象进行处理 const formData = new FormData(); // append方法把文件添加到 FormData实例对象中 第一个参数:文件名 第二个参数:要上传的文件 formData.append("smfile", files[0]); // 发送异步请求上传文件 // 因为发送的二进制格式文件 所以要额外设置请求头 axios .post('yes/api/v2/upload', formData, { headers: { "Content-Type": "multipart/form-data", "Authorization":"CiKs2eatBnpdzNJ58T", }, }) .then((res) => { // 图片上传成功 if(res.data.code == 'success') { // 存储成功的返回结果 uploadedData.value = res.data.data.url; }else { uploadedData.value = res.data.images; } // 请求发送成功 修改上传文件状态 fileStatus.value = "success"; // 把获取到的图片url传给父组件 context.emit('getImageUrl',uploadedData.value); }) .catch((e) => { console.log('图床上传',e); fileStatus.value = "error"; }) .finally(() => { if (fileInput.value) { fileInput.value.value = ""; } }); } };
本文链接地址:https://www.jiuchutong.com/zhishi/287974.html 转载请保留说明!

上一篇:yolov5训练并生成rknn模型以及3588平台部署(yolov2训练)

下一篇:埃尔姆利国家自然保护区里的一只文须雀,英格兰肯特郡 (© Mark Bridger/Offset by Shutterstock)(埃姆雷莫尔)

  • 一般纳税人转为小规模的条件
  • 房地产公司自用房屋销售土地增值税计算
  • 税务师财务与会计难不难
  • 小型微利企业所得税率
  • 进口货物增值税的组成计税价格是
  • 企业所得税减免税额包括哪些
  • 为客户购买的机票怎么退
  • 2021成品油增值税计算
  • 六个点的税率是小规模吗
  • 境外企业转让非居民企业
  • 基金会计核算的核算主体是
  • 法定盈余公积和法定公积金一样吗
  • 汽车贷款利息是什么
  • 汇算清缴前未取得发票账务处理
  • 个人以房抵债交税吗
  • 工会经费应该计入人工成本吗
  • 幼儿园是否缴纳残疾人保障金
  • 2019年印花税税率表
  • 其他应收账款贷方表示什么意思
  • 股权转让企业所得税如何申报
  • 个体户小规模纳税人每月开票
  • 物业公司的水电工工作职责
  • qconsvc.exe - qconsvc是什么进程 有什么作用
  • 跳线和短接
  • 社保挂靠会计处理
  • win11专业版网卡安不了
  • 零售企业退货分录
  • w10控制中心在哪
  • php socket_write
  • PHP:imagegrabwindow()的用法_GD库图像处理函数
  • 建筑企业跨区域还需预缴增值税吗
  • 常用的几种布局格式
  • 拉贾安帕特群岛地图中文版
  • Yii2超好用的日期和时间组件(值得收藏)
  • River Avon in Bath, England (© Robert Harding World Imagery/Offset by Shutterstock)
  • 大学生web前端期刊有哪些
  • 人工智能导论论文2000字
  • 专项资金怎么填表
  • 兼职人员的工资怎么做账
  • 织梦遍历栏目描述
  • Python解释器有哪些种类
  • 代收的运输费用怎么入账
  • 歌咏比赛服装费用规定标准最新
  • 个体工商户要开票吗
  • 个人去开票要交税吗
  • 15个postgresql数据库实用命令分享
  • c#获取局域网ip
  • 待抵扣进项税额是二级还是三级
  • 生活垃圾处理费合法吗
  • mariadb10安装
  • 借款合同的
  • 固定资产没有发票
  • 同城票据交换原理
  • 政府征税再进行补贴对消费者福利的影响
  • 明细分类账如何填写
  • 商品盘点库存的方法
  • 社保的会计核算方法
  • 关于爱在线观看电影完整版
  • mysql绿色版和安装版有什么区别
  • xp系统环境变量
  • 史上最快的速度
  • centos 命令大全
  • win8.1快捷键
  • linux文本模式无法打字
  • windows 10 mobile apk
  • win10 edge浏览器设置信任站点
  • Win10系统安装步骤
  • bootstrap怎么用
  • python算法具有哪五个性质
  • 阿里大于短信验证接口
  • 总体把握是什么意思
  • js怎么获取密码框内容
  • 网上怎么交车船税
  • 怎样查税务师事务所信息
  • 十月报税2021
  • 陕西职工医保申请流程
  • 税务局网上缴税
  • 北京税务局公众平台官网
  • 一般纳税人做账收费标准
  • 湖北职称网上申请流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设