当前位置: 首页 > 编程笔记 >

Vue 使用formData方式向后台发送数据的实现

夹谷星河
2023-03-14
本文向大家介绍Vue 使用formData方式向后台发送数据的实现,包括了Vue 使用formData方式向后台发送数据的实现的使用技巧和注意事项,需要的朋友参考一下

很多时候在使用form向后台发送数据的时候,并不需要使用到表单组件

例如时间戳、ip等,这个时候除了ajax之外,还可以使用HTML5的一个全新方法FormData;在input[type = file]的文件类型中,很多时候想要把一张图片或者是使用canvas绘制好的图像传送到后台时,无法赋值给file文件,只能转换为base64类型传送到后台,然后由后台转换为图片再进行服务器存储;此过程较为复杂;

使用formdata,只需创建新的formdata对象,将要发送的数据添加进去,后台即可接收;数据以及文件对象皆可;

1. 基本使用方式

template

<input class="file" name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update"/>

JavaScript

update (e) {
  let file = e.target.files[0]
  // console.log(file)
  let param = new FormData() // 创建form对象
  param.append('file', file, file.name) // 通过append向form对象添加数据
  param.append('id', this.$store.state.userId) // 添加form表单中其他数据
   // withCredentials: true 使得后台可以接收表单数据 跨域请求
  const instance = axios.create({
    withCredentials: true
  })
  // url为后台接口
  instance.post('url', param)
    .then(this.succ) // 成功返回信息 调用函数 函数需自己定义,此处后面省略
    .catch(this.serverError) // 服务器错误 调用对应函数 函数需自己定义,此处后面省略
}

2. 美化 input file 按钮 (拓展)

思路:

  1. 简单粗暴地隐藏:opacity: 0;
  2. 在 <input class="file"> 元素节点的位置上创建一个好看的元素节点,比如img
  3. 将 <input class="file"> 元素的z轴变高,使得其覆盖<img/> :z-index: 5;
  4. 因为 <input class="file"> 是透明的,那么我们就只看见它同xy上的好看的<img />
  5. 点击这个好看的<img /> 其实是点击了它上层的表单

以上思路可以实现点击用户头像,通过表单上传更换头像,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我在使用jQuery的ajax函数将文件发送到服务器端PHP脚本时遇到问题。可以获取File- List,但是如何将此数据发送到服务器呢?使用文件输入时,服务器端php脚本上的结果数组()为0()。 我知道这是可能的(尽管直到现在我还没有找到任何jQuery解决方案,只有Prototye代码(http://webreflection.blogspot.com/2009/03/safar

  • 本文向大家介绍express+mockjs实现模拟后台数据发送功能,包括了express+mockjs实现模拟后台数据发送功能的使用技巧和注意事项,需要的朋友参考一下 前言:   大多数时候,前端会和后端同时进行开发,即在我们开发完页面的时候,很可能还不能立马进入联调阶段,这个时候,为了保证我们接口的有效性和代码的功能完整,我们可能需要模拟数据。 模拟数据方法 1.通过js变量模拟后台数据   优

  • 本文向大家介绍jQuery向后台传入json格式数据的方法,包括了jQuery向后台传入json格式数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery向后台传入json格式数据的方法。分享给大家供大家参考。具体分析如下: 前后台数据交互一般都用json格式,后台可以直接将json对应转化为实体对象。方便以后的操作。jQuery向后台传数据的时候,我们会发现他会自动转化成

  • 问题内容: 有没有办法将应用程序发送到后台?与如何调用类似,我有一些UI元素可以测试。有谁知道这是否完全可能? 问题答案: 我建议退房。这是您可以按“主页”按钮然后重新启动应用程序的方法

  • 我在c中有一个存储字节的结构,如下所示: 我需要通过节俭将这些数据发送到用C编写的远程服务。我发现了三种方法如何将此结构映射到节俭idl: > 使用二进制键入: 以类型存储数据: 最好的办法是什么?

  • 我正在用我的电子邮件Id发送我的邮件数据。我制作了一个包含editText(用于emailId)和按钮的mainActivity类。另一个类是BroadcastReceiver类,我在其中检索数据。现在我不明白如何将这些数据发送到后台提供的电子邮件中。我在谷歌上搜索了很多,但都没有得到所需的回复。请分享这些想法并帮助我。