文件上传之Ajax篇
AJAX上传文件
1.为什么要写这篇文章
楼主前几天去北京面试,聊起ajax上传文件, 面试官告之不能,遂讨论之,不得果,于是写下这篇文章,希望能和大家一起学习
2.正文
首先,要使用ajax上传文件就要使用到HTML5 新增的FormData对象,这个对象其实就相当于一个表单容器,它有一个方法append("key",value),可以以键值对的方式动态的像"表单"中添加内容
第二,要对$.ajax()中的参数进行设置,具体设置方法见代码
话不多说,上代码
HTML:
<input type="file" name="f1" id="f1" />
<input type="button" onclick="upload()" value="upload" multiple/>
<input type="text" value="hehe" id="t1" name="t1"/>
JavaScript:
function upload() {
var formData = new FormData(); //新建FormData对象
var fileList = $("#f1").files; //取file控件中的文件,files属性取到的是一个fileList
formData.append('aaa', fileList[0]); //将fileList中的文件逐个放入formData中,注意,直接放入fileList后台是取不到的
formData.append('aaa', fileList[1]); //formData.append()中的"key",如果传入的是文件,就可以随意取名字了
formData.append('bbb', $("#t1").val()); //作为示例,同时放入表单数据
$.ajax({
url: "@Url.Action("receive","home")", //C# Razor写法,也可写成/home/receive,但是安全性欠佳
data: formData,
type: 'POST',
contentType: false, //这里着重强调contentType和processData都要设置为false,否则文件发送不过去
processData: false, //这样做是为了防止浏览器自动转换发送出的数据格式为字符串或其他
success: function (data) { //这一部分楼主随意写了
if (data === "") {
return false;
}
},
error: function (a, b, c) {
alert("aaa");
}
});
}
后台:
[HttpPost]
public ActionResult receive()
{
HttpPostedFileBase file = Request.Files[];
var file1 = Request.Form[];
var bbb = Request.Params["bbb"];
return null;
}
注:file与file1都是取到的文件,bbb则是取到的value,即"hehe"
楼主第一次写博客,如有错误,请多指教,定当虚心学习
如有转载,请注明出处http://www.cnblogs.com/ones/p/4348710.html
文件上传之Ajax篇的更多相关文章
- ajax 文件上传,ajax
ajax 文件上传,ajax 啥也不说了,直接上代码! <input type="file" id="file" name="myfile&qu ...
- maven工程 java 实现文件上传 SSM ajax异步请求上传
java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: <!- ...
- django设置并获取cookie/session,文件上传,ajax接收文件,post/get请求及跨域请求等的方法
django设置并获取cookie/session,文件上传,ajax接收文件等的方法: views.py文件: from django.shortcuts import render,HttpRes ...
- 利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载
利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载 1.页面显示代码 <%@ page language="java" import="java ...
- 关于文件上传的ajax交互
首先我们来了解一下上传文件 <input type="file"> input的file常用上传类型 后缀名 MIME名称 *.3gpp audio/3gpp, vid ...
- HttpApplication实战大文件上传 (第四篇)
一.Asp.net中的文件上传 在Asp.net 1.1中,文件在上传过程中将被全部保存在内存中,对于大文件来说,会造成内存空间的过度使用,可能会招致恶意攻击.为了解决这个问题,Asp.net在配置文 ...
- Python Django缓存,信号,序列化,文件上传,Ajax登录和csrf_token验证
本节内容 models操作 Django的缓存 请求方式 序列化 Form 配合Ajax实现登录认证 上传文件 Ajax csrf_token验证方式 1 models操作 单表查询: curd(增 ...
- SpringMVC(四)-- springmvc的系统学习之文件上传、ajax&json处理
资源:尚学堂 邹波 springmvc框架视频 一.文件上传 1.步骤: (1)导入jar包 commons-fileupload,commons-io (2)在springmvc的配置文件中配置解析 ...
- 表单文件上传,ajax文件上传
原创链接:http://www.cnblogs.com/yanqin/p/5345562.html html代码 index.jsp(表单文件上传) <form action="sh ...
随机推荐
- 2016.2.28 DataTable用法汇总
将控件的DataSource转换为DataTable,但是,此控件的DataSource绑定时必须是DataTable,不能是List DataTable dt = (bgvRoutePortion. ...
- 第十章 Executor框架
在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源.同时,为每一个任务创建一个新线程来执行 ...
- [tensorflow]异或门的实现
一段小程序:待理解 import tensorflow as tf import numpy as np #输入训练数据,这里是python的list, 也可以定义为numpy的ndarray x_d ...
- 按钮控件JButton的使用
---------------siwuxie095 工程名:TestUI 包名:com.siwuxie095.ui 类名:TestButton. ...
- R: 字符串处理包:stringr
本文摘自: http://blog.fens.me/r-stringr/ 1. stringr介绍 stringr包被定义为一致的.简单易用的字符串工具集.所有的函数和参数定义都具有一致性,比如,用 ...
- Luogu 1979 [NOIP2013] 华容道
要优先安排历年NOIP题 考虑到要移动,肯定要先把空的格子移动到起点旁边,所以我们对于每一个询问都先bfs一次求出把空格移到起点的四个位置的最短路,而且要保证不能移动起点的方块. 只有空的格子在一个格 ...
- java IO的总结
1: fileChannel 没有bufferedreader快, bufferedreader 可设置缓冲大小和编码 2: bufferedreader 的readline 遇到回车也换行
- C++笔记--函数
函数的定义和声明 函数的声明和定义都必须描述相同的类型,但是声明可以不写参数名,定义则必须写参数名,但是他们的参数名字可以不同. 一个局部变量被声明为static,那么这个局部变量将只会被初始化一次, ...
- 一劳永逸搭建android开发环境(android官网reference sample api tutorial全下载)
[摘要]本文简单介绍了android开发环境的搭建,重点介绍了SDK manager和AVD升级问题:并提供了android reference,sample,api,及docs的下载信息. [1]为 ...
- Android按钮单击事件处理的几种方法(Android学习笔记)
方法一:匿名内部类实现按钮事件处理 this.btnButton=(Button)super.findViewById(R.id.mybtn); this.btnButton.setOnClickLi ...