前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
lnmp和lamp浅谈对比
LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Nginx网络服务器,MySQL数据库,PHP编程语言,所有组成产品均是免费开源软件,这四种软件组合到一起,成为一个免费、高效的网站服务系统。
后端技术探索
2018/08/09
2.2K0
LAMP和LNMP哪个更好
对于配置服务器的网站环境,很多人不知道是装apache好,还是装nginx好。下面给大家详细介绍LNMP和LAMP的优缺点,供大家在配置服务器的web环境的时候做参考。
风吹屁屁凉
2021/07/14
1.8K0
2020年了 你还不懂LNMP与LAMP嘛?两分钟带你深入了解两者的区别~~
lamp 的全称是linux + apache + mysql +php 使用的是Apache,Apache是世界是用排名第一的Web服务器软件,其几乎可以在所有广泛使用的计算机平台上运营,由于其跨平台和安全性被广泛使用,是最流行的Web服务端软件之一。
不吃小白菜
2020/09/03
3.7K0
Lamp架构_lamp部署
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.
全栈程序员站长
2022/11/03
1.5K0
Linux系统下搭建LNMP环境
“每个理性的IT人士都置顶了吴柯的运维笔记” LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。 这四种软件均为免
吴柯
2018/04/16
2.6K0
在ubuntu上手动搭建LNMP环境
环境说明: Linux:ubuntu 20.04 Nginx:1.18 Mysql:8.0 PHP:7.3
知识分子没文化
2023/07/01
1.1K0
在ubuntu上手动搭建LNMP环境
如何搭建 LNMP 网站服务环境
LNMP指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
火星救援队长
2018/10/19
4.3K0
如何搭建 LNMP 网站服务环境
WordPress网站选择LNMP环境和LAMP环境哪个好?
WordPress网站选择LNMP环境和LAMP环境哪个好? WordPress建网站选择LNMP环境还是LAMP环境服务更好呢?现在建站常用的两大环境服务是 LNMP和LAMP,因为这两种环境易用,
用户7261497
2020/05/20
2.9K0
WordPress网站选择LNMP环境和LAMP环境哪个好?
亲测LNMP 的总体基本框架服务器的安装搭建
Apache自1990年发布以来,一直是web服务器市场的王者。Nginx出现较晚,因其在高并发下卓越的表现,最初是作为Apache在高并发情况下的补充,当时Nginx+Apache是流行的架构. 现
迅达集团
2019/03/05
7730
亲测LNMP 的总体基本框架服务器的安装搭建
利用WordPress搭建属于自己的网站
怎么用WordPress给自己搭建了一个网站?可能很多人都想拥有属于自己的网站,这篇文章就找你怎么利用WordPress搭建属于自己的网站。如果你也正好有搭建个人网站的想法,那么本文会给你一个参考,我尽量写的比较详细,给自己做一个记录,也给大家一个参考。
张飞的猪
2022/12/28
1.5K1
利用WordPress搭建属于自己的网站
LNMP与LAMP有哪些区别
很多小白对服务器不太了解,很多小伙伴们安装宝塔的时候往往会让你选择LNMP和LAMP的套件
逍遥灰灰
2020/07/02
2K0
如何在CentOS 7安装网页服务器(LNMP)
LNMP是一组可用于为动态网页和Web应用程序提供服务的软件。这是一个描述Linux操作系统的首字母缩略词,带有Nginx Web服务器。后端数据存储在MySQL数据库中,动态处理由PHP 处理。
朝朝
2018/08/03
2.7K1
如何在CentOS 7安装网页服务器(LNMP)
最流行的5大开源Web服务器
根据维基百科介绍,web服务器是“通过HTTP协议处理web请求的计算机系统”(a computer system that processes requests via HTTP)。这个词可以指代整个系统,也可以指代可接收和管理HTTP请求的的程序。本文中介绍的web服务器指的是为终端用户处理web请求的程序。
魏新宇
2018/09/30
3.9K0
最流行的5大开源Web服务器
opensuse nginx+mono 2.8支持aspx环境的配置
nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的门户网站及搜索引擎Rambler(俄文:Рамблер)使用。  其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括
张善友
2018/01/30
4.5K0
CentOS下源码编译安装LNMP(附源码包)
LNMP指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、Ubuntu、Fedora、gentoo等;Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器;Mysql是一个小型关系型数据库管理系统;PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
星哥玩云
2022/07/14
1.7K0
CentOS下源码编译安装LNMP(附源码包)
AMH 国内开源免费云主机面板安装与使用-免费SSL,自动备份和应用安装
对于新手建站,如果不想使用Oneinstack或者LNMP一键安装包这类命令脚本工具,现在多数人会推荐使用BT宝塔面板,这是一个非常适合新手建站的VPS国产面板。而今天分享的AMH 是国内首个开源的主机面板,使用APL开源软件协议,在《服务器控制面板榜单》一文中有列出AMH面板。
用户9022575
2022/07/20
10.8K0
手把手教你,嘴对嘴传达------源码编译LNMP部署及应用 , 手动搭建discuz论坛
LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python
不吃小白菜
2020/09/03
9480
手把手教你,嘴对嘴传达------源码编译LNMP部署及应用   , 手动搭建discuz论坛
LNMP架构介绍与搭建
  LNMP架构和LAMP架构挺像的,只不过一个用的Apache一个用的Nginx。LNMP就是Linux+Nginx+MySQL+PHP,Nginx和Apache一样都是web服务器。
端碗吹水
2020/09/23
1K0
LNMP架构介绍与搭建
新手建站之【建站环境安装】④
新手建站合集 1️⃣新手建站之【域名注册】①http://t.csdn.cn/y8gM3✅ 2️⃣新手建站之【服务器租用】②http://t.csdn.cn/tlIWK✅ 3️⃣新手建站之【网站备案】③http://t.csdn.cn/P9G6W✅ 4️⃣新手建站之【建站环境安装】④http://t.csdn.cn/j65D9✅ 5️⃣新手建站之【创建站点】⑤http://t.csdn.cn/5N2Ss✅ 6️⃣新手建站之【站点设置】⑥http://t.csdn.cn/sdqjV✅ 7️⃣新手建站之【域名解析】⑦http://t.csdn.cn/CFUOb✅ 8️⃣新手建站之【源码上传】⑧http://t.csdn.cn/Me1WY✅
MIKE笔记
2023/03/23
9.3K0
新手建站之【建站环境安装】④
宝塔 Linux 面板 4.X 版本安装教程
之前魏艾斯博客写过一个宝塔服务器管理助手 Linux 面版-安装教程,这个教程是 3.X 版本的,基于宝塔面板每周三更新的频率,现在的 4.X 版本安装方式和之前有了变化,速度也快了很多,为了建站新手考虑,老魏重新写了一次宝塔 Linux 面板 4.X 版本安装教程。 老魏写本文时候更新到宝塔 Linux 面板 – 6 月 14 日更新 – 4.5 版,不排除宝塔 Linux 面板的安装方式以后还会有变化。 安装要求: Python 版本: 2.6/2.7 内存:128M 以上,推荐 512
魏艾斯博客www.vpsss.net
2018/06/01
1.9K0
相关推荐
lnmp和lamp浅谈对比
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档