Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Ajax如何实现文件上传

Ajax如何实现文件上传

作者头像
高一峰
发布于 2020-09-22 02:28:49
发布于 2020-09-22 02:28:49
3.2K0
举报
文章被收录于专栏:高渡号外高渡号外
(新手编程1001问_0003)

Q:Ajax如何实现文件上传?

A:这是个好问题。

因为一般情况下,通过表单提交实现文件上传是没有问题的,只需要将表单的enctype属性设置为multipart/form-data即可。例如:

<form action="/Home/uploadfiles/" enctype="multipart/form-data" method="post">

...

</form>

但是,如果表单数据需要验证,就希望通过JS来完成,如此一来也可能希望表单数据提交一并在JS中完成,特别是,如果需要立即获取提交后的结果反馈,那么通过Ajax来实现将是最好的选择。问题是,通常情况下,JS能获取的表单数据大多是文本或数字,如果遇到文件对象,该如何提交呢?

显然,文件对象不是简单的文本,JS直接从表单的文件对象控件里读取的值,也只是文件路径和文件名。我们需要提交的是文件对象本身,它提交的过程中应该是二进制的文件数据流。那么,该如何提交,这里我们就需要介绍一下JS的FormData类了。

FormData是JS专门为表单数据创建的一个对象,它可以存储任何的表单控件的数据,包括文件类型的数据。

它的定义和创建很简单:

var formData = new FormData();

然后,就可以使用append()方法向formData 中添加数据了。例如:

formData.append("名称",值);

示例代码如下:

(HTML页面表单的代码)

(JS及其Ajax代码)

(服务端的代码以.NET MVC为例)

有兴趣的同学,复制以上代码,测试一下,多文件上传一招搞定哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高渡号外 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Web文件上传方法总结大全
文件上传在WEB开发中应用很广泛,我们经常发微博、发微信朋友圈都用到了图片上传功能。
用户7657330
2020/08/14
4.5K0
文件上传的动作不能太俗,必须页面无刷新上传
常规操作上传文件 1 <form action="xxx.action" method="post" enctype="multipart/form-data"> 2 <input type=
赵小忠
2018/01/24
1.8K0
多文件上传
HTML中实现多文件上传是通过用<input type="file">元素的multiple属性,以下简单描述多文件上传的步骤
云叶知秋
2024/01/08
4290
单文件上传
随着Web应用的普及,文件上传功能成为许多网站和应用不可或缺的一部分。本文整理了个人学习过程中的笔记,为开发者提供全面的了解和实践经验。
云叶知秋
2024/01/07
3060
基于业务场景下的图片/文件上传方案总结
图片/文件上传组是企业项目开发中必不可少的环节之一, 但凡涉及到用户模块的都会有图片/文件上传需求, 在很多第三方组件库(ant desigin, element ui)中它也是基础组件之一. 接下来笔者就来带大家从零实现一款图片/文件上传组件以及扩展出更强大的上传组件.
徐小夕
2020/10/10
1.7K0
基于业务场景下的图片/文件上传方案总结
Django学习笔记之Ajax与文件上传
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。
Jetpropelledsnake21
2018/08/10
1.7K0
Django学习笔记之Ajax与文件上传
你还在手动拼接ajax数据吗?还不会通过ajax实现文件上传?
通过Formdata你就不用手动拼接表单元素的值了如name:sdd&pwd:dsf... 或许你会疑惑我为什么要手动拼接表单值,直接提交不就行了吗?有些时候我们会通过ajax提交表单,通过ajax提交表单时我们不得不手动拼接表单值,数量少还好数量多很容易出错,写着也烦,此处笔者深有体会啊, 不仅如此Formdata支持文件上传,这就意味着你可以通过ajax实现异步文件这在web开发中太有用了,此博客后台上传文件就是通过Formdata
切图仔
2022/09/08
6270
揭秘前端文件上传原理(一)
在平时工作中,总是会接触过很多文件上传的功能,因为用惯了各种操作库来处理,所以总有一种云里雾里的感觉,没有清晰的思路,归根到底还是没有理解文件上传的原理。接下来将揭起工具库的面纱,看看文件上传到底是怎么一回事,深入了解文件上传的本质。
用户1462769
2019/09/09
12.6K0
揭秘前端文件上传原理(一)
前端处理图片上传的几种方式
在用html5实现图片预览功能这篇文章中只是介绍了图片上传过程中预览的实现,那关于图片上传有哪几种方式呢?
挥刀北上
2019/08/06
5.3K0
python测试开发django-178.ajax实现form表单文件上传
form表单内容,需添加属性:enctype=”multipart/form-data”
上海-悠悠
2021/12/29
9250
python测试开发django-178.ajax实现form表单文件上传
表单多文件上传样式美化 && 支持选中文件后删除相关项
本文根据一个例子,对多文件的上传样式做了一些简单的美化(其实也没怎么美化。。),同时支持选择文件后自定义删除相关的文件,最后再上传
书童小二
2018/09/03
4.2K0
表单多文件上传样式美化 && 支持选中文件后删除相关项
Django之Ajax文件上传
      这应该是最常见的 POST 提交数据的方式了。浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 默认格式application/x-www-form-urlencoded 方式提交数据,ajax默认也是这个。请求类似于下面这样(无关的请求头在本文中都省略掉了):
py3study
2020/02/10
2.4K0
写给新手前端的各种文件上传攻略,从小图片到大文件断点续传
今年国庆假期终于可以憋在家里了不用出门了,不用出去看后脑了,真的是一种享受。这么好的光阴怎么浪费,睡觉、吃饭、打豆豆这怎么可能(耍多了也烦),完全不符合我们程序员的作风,赶紧起来把文章写完。
coder_koala
2019/11/04
3.3K0
写给新手前端的各种文件上传攻略,从小图片到大文件断点续传
Ajax(二)
enctype 属性只能搭配 POST 提交方式一起使用;如果是 GET 提交,则 enctype 没有意义。
且陶陶
2023/04/12
1.7K0
Ajax(二)
C#结合JavaScript实现多文件上传
在许多应用场景里,多文件上传是一项比较实用的功能。实际应用中,多文件上传可以考虑如下需求:
初九之潜龙勿用
2024/06/20
1520
C#结合JavaScript实现多文件上传
前端本地文件操作与上传
前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用户可通过以下三种方式操作触发:
IT派
2018/08/10
1.7K0
前端本地文件操作与上传
Ajax 实战
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)
HammerZe
2022/03/25
1.6K0
Ajax 实战
Ajax使用formData提交带图片上传的表单
记录一下今天踩过的坑。。这么个问题居然搞了快两个小时了。ssm框架,前台form带图片上传,因为效验表单数据,所以不能直接submit。
sunonzj
2022/06/21
2.7K0
解决Spring框架文件上传问题:修复MultipartException异常导致的常见错误
嘿,我是猫头虎博主,今天我们要探讨一个让开发者们头疼的问题 —— MultipartException。这个问题通常出现在我们尝试上传文件时,但我们的请求没有按照预期的多部分格式发送。别担心,我们会一步步分解这个问题,并且给出解决方案。让我们一起学习如何确保我们的请求是多部分的,就像专家一样处理这些棘手的问题!
猫头虎
2024/04/09
3K0
解决Spring框架文件上传问题:修复MultipartException异常导致的常见错误
Ajax简单实现文件异步上传的多种方法
void append(DOMString name, DOMString value)
潇洒哥和黑大帅
2019/02/25
1.8K0
相关推荐
Web文件上传方法总结大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档