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

  • 萤石摄像头被别人绑定了怎么解绑(萤石摄像头被别人添加)

    萤石摄像头被别人绑定了怎么解绑(萤石摄像头被别人添加)

  • 支付宝小鸡饲料容量最大多少(支付宝小鸡饲料今天答题)

    支付宝小鸡饲料容量最大多少(支付宝小鸡饲料今天答题)

  • qq深色模式怎么关闭(qq深色模式怎么关闭不了)

    qq深色模式怎么关闭(qq深色模式怎么关闭不了)

  • 余额宝如何赚钱(余额宝如何赚钱的)

    余额宝如何赚钱(余额宝如何赚钱的)

  • 拼多多订阅物流如何取消(拼多多订阅物流提醒收费吗)

    拼多多订阅物流如何取消(拼多多订阅物流提醒收费吗)

  • 华为matebook13怎么下载软件(华为matebook13怎么分屏)

    华为matebook13怎么下载软件(华为matebook13怎么分屏)

  • 三相负载的连接方式有几种(三相负载的连接实验数据)

    三相负载的连接方式有几种(三相负载的连接实验数据)

  • 计算机网络中主要使用的交换技术(计算机网络中主体设备称为什么)

    计算机网络中主要使用的交换技术(计算机网络中主体设备称为什么)

  • 手机屏幕为什么会烧屏(手机屏幕为什么突然变暗)

    手机屏幕为什么会烧屏(手机屏幕为什么突然变暗)

  • 带耳机闹钟会外放吗(带耳机闹钟会外放吗iqoo)

    带耳机闹钟会外放吗(带耳机闹钟会外放吗iqoo)

  • oppor15有深色模式吗(oppor15深色模式怎么设置)

    oppor15有深色模式吗(oppor15深色模式怎么设置)

  • 钉钉入班申请已关闭是什么意思(钉钉同意入班申请系统繁忙)

    钉钉入班申请已关闭是什么意思(钉钉同意入班申请系统繁忙)

  • 抖音怎么不合成钻卡(抖音合成不了怎么回事)

    抖音怎么不合成钻卡(抖音合成不了怎么回事)

  • 抖音怎么给主播私信(抖音怎么给主播发私信)

    抖音怎么给主播私信(抖音怎么给主播发私信)

  • 朋友圈视频压缩画质怎么办(微信朋友圈视频压缩)

    朋友圈视频压缩画质怎么办(微信朋友圈视频压缩)

  • 手机换卡了微信还在吗(手机换卡了微信密码忘了怎么找回)

    手机换卡了微信还在吗(手机换卡了微信密码忘了怎么找回)

  • oppo手机怎么关闭来电语音报号(oppo手机怎么关闭广告推送)

    oppo手机怎么关闭来电语音报号(oppo手机怎么关闭广告推送)

  • 华为手机怎么关掉提醒(华为手机怎么关闭纯净模式)

    华为手机怎么关掉提醒(华为手机怎么关闭纯净模式)

  • 怎么关闭对方视频彩铃(怎么关闭对方视频背景音乐)

    怎么关闭对方视频彩铃(怎么关闭对方视频背景音乐)

  • 苹果11代怎么激活(苹果11激活怎么激)

    苹果11代怎么激活(苹果11激活怎么激)

  • 神舟战神win10恢复出厂设置(神舟战神win10系统还原)

    神舟战神win10恢复出厂设置(神舟战神win10系统还原)

  • 索尼xperia1拍照声音在哪关

    索尼xperia1拍照声音在哪关

  • 路由器100兆和1000兆的区别(路由器100兆和1000兆的区别 贴吧)

    路由器100兆和1000兆的区别(路由器100兆和1000兆的区别 贴吧)

  • 富士山和双岩,日本松崎 (© Tommy Tsutsui/Getty Images)(富士山的岩石属于什么岩)

    富士山和双岩,日本松崎 (© Tommy Tsutsui/Getty Images)(富士山的岩石属于什么岩)

  • 递延收益所得税负债
  • 上年度暂估的票回不来一直挂帐吗
  • 实验耗材计入什么科目
  • 年末结转净利润
  • 未达起征点销售额怎么填申报表
  • 如何认定纳税人资格证书
  • 管道运输是什么和什么合二为一
  • 无形资产的摊销,可摊销的标准是什么?
  • 提供劳务收取现金会计分录
  • 施工图审查费谁出
  • 没有银行回单用明细账可以做账吗
  • 客户不结款怎么办,出结款通知单
  • etc发票犯法吗
  • 应付利息在资产负债表中属于什么项目
  • 租赁的厂房改造可以费用化吗
  • 小规模纳税人会计核算健全,能够提供准确
  • 科技型企业科研项目申报
  • 两个单位的社保合并怎么办理手续
  • 如何解决win10系统安装不兼容驱动的问题
  • 为什么我的windows10
  • 个体户一般纳税人可以开13个点的专票吗
  • 应付债券借贷
  • 诺曼底作战
  • thinkphp3.2.3缓存漏洞
  • php fopen读取文件
  • 建设工程项目设计质量控制的内容
  • segment anything model模型 需要的配置
  • 多模手机
  • php cookies
  • php教程从入门到精通
  • 银行同业存放业务管理办法
  • 与上级往来的会计科目的题目
  • 织梦怎么添加相关
  • windows安装mq
  • vue+ele
  • 以前年度进项转出账务处理
  • SQLServer2005与SQLServer2008数据库同步图文教程
  • 增值税专票什么用处
  • 资产减值损失年报怎么调整
  • 社保账务如何做会计分录
  • 金税盘未清盘怎么处理
  • 进项税额转出怎么操作
  • 原始凭证的审核要求有哪些
  • 账户的基本结构不包括的内容有
  • sql语句查询记录
  • sql servererror40
  • coms恢复出厂设定还原bios设置方法步骤讲解
  • win10系统崩溃后可以通过什么来恢复
  • 电脑充电系统故障
  • windows server 2008 r2最大支持内存
  • UBUNTU怎么安装MPEG-4解码器
  • win10开机系统选择设置
  • liunx系统常用命令
  • win7窗口大小怎么设置
  • mac安全设置在哪里
  • Linux下查看某一个程序所使用的内存方法
  • centos安装详细
  • win8怎么外接屏幕
  • win8怎么关闭管理员用户
  • win7系统安装程序无法启动
  • windows7宽带连接断开怎么办
  • 使用jquery操作dom
  • 逐一介绍班子成员表现
  • Node.js中的construct
  • Python HTTP客户端自定义Cookie实现实例
  • android图形架构
  • 使用Python对SQLite数据库操作
  • python的数据
  • ubuntu下安装visual studio
  • Python heapq使用详解及实例代码
  • unity二段跳
  • 安卓获取手机号及通话状态权限
  • 国家税务总局山东省电子税务局
  • 税务总局地位
  • 代理业如何缴纳印花税
  • 开票风险预警机制蓝色预警怎么办
  • 沈阳税务机关地区编号
  • 2014年房产税征收标准
  • 个人股权转让是否增值了怎么判断
  • 郑州市地方税务局新郑国际机场分局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设