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篇的更多相关文章

  1. ajax 文件上传,ajax

    ajax 文件上传,ajax 啥也不说了,直接上代码! <input type="file" id="file" name="myfile&qu ...

  2. maven工程 java 实现文件上传 SSM ajax异步请求上传

    java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: <!- ...

  3. django设置并获取cookie/session,文件上传,ajax接收文件,post/get请求及跨域请求等的方法

    django设置并获取cookie/session,文件上传,ajax接收文件等的方法: views.py文件: from django.shortcuts import render,HttpRes ...

  4. 利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载

    利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载 1.页面显示代码 <%@ page language="java" import="java ...

  5. 关于文件上传的ajax交互

    首先我们来了解一下上传文件 <input type="file"> input的file常用上传类型 后缀名 MIME名称 *.3gpp audio/3gpp, vid ...

  6. HttpApplication实战大文件上传 (第四篇)

    一.Asp.net中的文件上传 在Asp.net 1.1中,文件在上传过程中将被全部保存在内存中,对于大文件来说,会造成内存空间的过度使用,可能会招致恶意攻击.为了解决这个问题,Asp.net在配置文 ...

  7. Python Django缓存,信号,序列化,文件上传,Ajax登录和csrf_token验证

    本节内容 models操作 Django的缓存 请求方式 序列化 Form 配合Ajax实现登录认证 上传文件 Ajax  csrf_token验证方式 1 models操作 单表查询: curd(增 ...

  8. SpringMVC(四)-- springmvc的系统学习之文件上传、ajax&json处理

    资源:尚学堂 邹波 springmvc框架视频 一.文件上传 1.步骤: (1)导入jar包 commons-fileupload,commons-io (2)在springmvc的配置文件中配置解析 ...

  9. 表单文件上传,ajax文件上传

    原创链接:http://www.cnblogs.com/yanqin/p/5345562.html html代码  index.jsp(表单文件上传) <form action="sh ...

随机推荐

  1. 2016.2.28 DataTable用法汇总

    将控件的DataSource转换为DataTable,但是,此控件的DataSource绑定时必须是DataTable,不能是List DataTable dt = (bgvRoutePortion. ...

  2. HOOK技术演示

    前提:64位系统需要用64位编译dll 一.首先创建一个dll工程,取名为KeyboardHookDll,代码如下: // KeyboardHookDll.cpp : 定义 DLL 应用程序的导出函数 ...

  3. struts1.2里的ActionMessages的使用

    转自:https://blog.csdn.net/oswin_jiang/article/details/4582187

  4. import json

  5. android 中context的具体作用和意义

    context在android中是非常重要的一个类,此类一般用于activity之中 从字面意思来看,这是环境变量,内部实现了一些方法,但是此类也可以看做是一个句柄,用来唯一标示activity 举个 ...

  6. JS中的!= 、== 、!==、===的用法和区别

    与c++中每一种类型都有明确的的定义不同:因JS中var定义存在,未具体区分类型,!=与==不能包含所有的条件,故加入!==与===用法: var num = 1; var str = '1'; va ...

  7. 【转】nginx的模块变量(HTTP核心模块变量)

    nginx的HTTP核心模块引入了大量的变量,可以在指定范围内使用这些变量的值,可以分为三类:一是客户请求头中发送的变量.二是服务器端响应头中的变量,第三是nginx产生的各种变量,我们可以使用$变量 ...

  8. ann

    转自 http://blog.csdn.net/yiluoyan/article/details/45308785 这篇文章接着之前的车牌识别,从输入的车图片中分割识别出车牌之后,将进行下一步:车牌号 ...

  9. Java-马士兵设计模式学习笔记-策略模式-模拟Comparable接口

    一.情况 1.目标:要在专门用于排序数据的DataSorter.java中实现对所有A类,B类,C类,D类等等的排序 2.初步想法:DataSorter.java的代码如下 public class ...

  10. 对private protected public的详解:

    #include <iostream> #include <stack> #include <queue> #include <exception> # ...