位置: 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)(埃姆雷莫尔)

  • 企业所得税要交多少税
  • 上级补助收入对应的支出科目是哪个
  • 异地预缴税款不交可以吗
  • 工程款按进度付款开票分录
  • 必胜客发票提取码在小票哪里
  • 购货方跨年红冲发票会计分录
  • 应收利息对应什么科目
  • 增资导致丧失控制权
  • 存货盘盈涉税问题
  • 冲销暂估入账原材料的会计分录
  • 小规模纳税人税费怎么算
  • 广告公司可以开服务费吗
  • 小微企业免征增值税的账务处理
  • 公司缴纳社保部分从个人扣除 犯法吗
  • 施工现场应建立什么
  • 小规模纳税人缴税计算
  • 消费税在哪个环节征税
  • 残疾小伙小强
  • linux系统开机黑屏怎么办
  • php异常的基类
  • mac os x v10.10
  • 购买销售商品
  • 所得税贷款利息扣除
  • 企业与员工之间的法律
  • 废旧物资经营单位增值税税率
  • 固定资产不计提折旧有什么影响
  • php面向对象编程
  • framework怎么用
  • sessionn
  • python自动控制
  • 微信浏览器支持webassembly
  • 企业开负数发票退货后怎么处理?
  • Programming tutorials and source code examples
  • 工程检测业务
  • 计提折旧会计分录例题
  • 下乡扶贫有补助吗
  • 织梦商城
  • 税控设备抵减增值税必须当月抵减吗
  • 定期定额自行申报表应税项填多少
  • 个人代工程发票要缴纳的个税
  • 净资产包含哪些项目
  • 非同一控制下的长期股权投资入账价值
  • 资产负债表第二年怎么填
  • 计划成本核算的实际成本怎么算
  • 专家劳务费可以在手机操作吗
  • 累计预扣法利弊
  • 文化事业建设费会计分录
  • sql server数据库中的null(空值)
  • 珠宝行业的会计
  • 一般纳税人每月开票限额是多少
  • 利润表研发费用和管理费用
  • 扣税时账上没钱怎么办
  • 电信收据模板
  • 法人存入公司账户会计分录
  • 班车租赁服务
  • mysql的优化有哪几种
  • mysql 复制表结构并把满足条件的数据添加到新表
  • MYSQL数据库应用
  • mysql “ Every derived table must have its own alias”出现错误解决办法
  • acs_log是什么文件
  • skydrive pro
  • windows8.1如何分区
  • win8无法连接wifi
  • ubuntu图片查看
  • 如何解决cpu超频问题
  • 通过防火墙可以保证窃听到的信息毫无价值
  • win8资源管理器未响应
  • linux无法登陆
  • CentOS技巧:减小Linux swap分区的方法
  • win10如何在桌面设置出我的电脑
  • linux+c
  • Win7摄像头驱动程序
  • android入门书
  • shell编程怎么执行
  • python错误代码
  • 跟踪快件
  • 广东电子税务局中山税务局网
  • 重芳烃闪点70,初馏点是多少
  • 印花税核算有两种情况,是如何处理的?
  • 郑州市地税局局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设