web前端图片上传(2)

摘要:
今天发现了一种ajax上传图片的方式,是以前没有用过的,首先来说下为什么要用这种方式。1varformData=newFormData();//首先这里新建一个空对象2formData.append;//这里是一个图片的input框,id为file。appen的第一个参数,是后台的传输的字段3formData.append;4formData.append;5formData.append;6formData.append;7$.ajax({8url:"__ROOT__/index.php/Administration/Gamemanage/add_icon",9type:"post",10processData:false,//这里需要注意,一定要写false,因为有图片,所以不需要序列化11contentType:false,//这里也是一个需要注意的点。我们来看下这种方式的请求头,和一般的ajax是不一样的。这是另一种ajax传输base64图片的方式。

今天发现了一种ajax上传图片的方式,是以前没有用过的,首先来说下为什么要用这种方式。是因为原来后台是用的form表单的方式来提交表单数据的。但是觉得呢,这种方式不太好,因为要刷新页面,前台只用控制台看不到传输的参数(如果哪位大神知道怎么看到,请不吝赐教),所以我们就改成了ajax的方式,结果后台老哥说,前端改改就行了,后端不用改。然后我去找到了这种ajax提交表单的方式。废话不多说,直接看代码。

1 var formData = newFormData();//首先这里新建一个空对象
2                     formData.append("file", document.getElementById("file").files[0]);//这里是一个图片的input框,id为file。appen的第一个参数,是后台的传输的字段
3                     formData.append("reward_name", reward_name);
4                     formData.append("reward_id", reward_id);
5                     formData.append("reward_num", reward_num);
6                     formData.append("exchange_num", exchange_num);
7 $.ajax({
8                         url:"__ROOT__/index.php/Administration/Gamemanage/add_icon",
9                         type:"post",
10                         processData:false, //这里需要注意,一定要写false,因为有图片,所以不需要序列化
11                         contentType:false, //这里也是一个需要注意的点。也要写false
12 data:formData,
13                         dataType:'json',
14                         success:function(data){
15                             if(data.info=="添加成功"){
16 alert(data.info);
17 window.reload();
18                             }else{
19 alert(data.info);
20 }
21 }
22                     });

这种方法和我上次写的那个是不一样的,这次的方法是直接提交一个文件。我们来看下这种方式的请求头,和一般的ajax是不一样的。请看截图

web前端图片上传(2)第1张

里面的参数就是我上面代码中写的参数,大家可以一一对应起来。

附上上一篇的链接。这是另一种ajax传输base64图片的方式。其实两种方式都是可以的,但是需要看后台怎么选择。毕竟前后台需要合作,哪种方式只需要前后台商量好就行。

免责声明:文章转载自《web前端图片上传(2)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇配置SecureCRT连接VirtualBox虚拟机中的Linux环境Oracle SQL语句之常见优化方法总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项

编译环境:Ubuntu x86_64(Linux root 2.6.32-45-generic #101-Ubuntu SMP Mon Dec 3 15:39:38 UTC 2012 x86_64 GNU/Linux) 运行环境:Android 4.0.4 (Linux kernel 3.0.21 OMAP4460) 一、下载NDK9和valgrind...

DOCKER 从入门到放弃(五)

添加docker启动参数修改存储大小 添加--storage-opt 参数设置thin-pool和元数据大小--storage-opt dm.loopmetadatasize=10G --storage-opt dm.loopdatasize=400G 修改thin-pool池大小为400g,元数据大小为10g [root@docker opt]# cat...

NestJS WebSocket 开始使用

使用NestJs提供WebSocket服务。本文会在新建项目的基础上增加2个类 Gateway 实现业务逻辑的地方 WebSocketAdapter WebSocket适配器 新建项目 新建一个项目来演示,用npm来管理项目。 nest new websocket-start 得到一个有基础功能的工程。 进入项目目录,安装2个库 npm i --sa...

MongoDB的安装与使用

  MongoDB是一款NoSql数据库。NoSql数据库叫非关系型数据库,NoSql的全名Not only sql。是为了解决高并发、高可用、高可扩展,以及大数据存储等一系列问题而产生的数据库解决方案。NoSql,它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。   NoSql数据库又分为多种,如键值(Key-Value)存储数据库(如red...

基于Siverlight 3.0的超炫图表工具Visifire 最后一个免费版本,你还等什么?

概述              Visifire 是一个基于SilverLight的Chart组件,VISIFire 公司提供了 Open Source 的 Silverlight  Chart 组件,遵循GPL v3,可以在 ASP, ASP.Net, PHP, JSP, CodeFusion, Ruby on Rails 以及 HTML 中使用。支持...

JavaScript按纯数字排序

  直接上代码: 1 var arr=[ 2 {name:"张散步",age:"23",sports:"篮球",number:"231123"}, 3 {name:"李斯的",age:"3",sports:"钢琴",number:"534563"}, 4...