Jquery_异步上传文件多种方式归纳

1.不用任何插件,利用iframe,将form的taget设为iframe的name,注意设为iframe的id是没用的,跟网上很多说的不太一致

iframe_upload.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <form id="form1" method="post" action="Upload.aspx" enctype="multipart/form-data" target="uploadframe">
        <input type="file" id="upload" name="upload" />
        <input type="submit" value="Upload" />
    </form>
    <iframe id="uploadframe" name="uploadframe" style="visibility:hidden"></iframe>
</body>
</html>

Upload.aspx

<%@ Page Language="C#" %>
<%
    Response.ClearContent();
    try
    {
        if (Request.Files.Count == 0) Response.Write("Error");
        else
        {
            HttpPostedFile file= Request.Files[0];

            string ext = System.IO.Path.GetExtension(file.FileName);
            string folder = HttpContext.Current.Server.MapPath("~\\Upload\\");
            string path = folder + Guid.NewGuid().ToString() + ext;
            file.SaveAs(path);

            Response.Write("Success");
        }
    }
    catch
    {
        Response.Write("Error");
    }
%>

2.利用ajaxupload.js

Default.aspx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Ajax Upload Demo</title>
        <script type="text/javascript" src="Scirpt/jquery-1.10.2.min.js"></script>
        <script type="text/javascript" src="Scirpt/ajaxupload.js"></script>
        <script type="text/javascript">
            $(function ()
            {
                // 创建一个上传参数
                var uploadOption =
                {
                    // 提交目标
                    action: "Upload.aspx",
                    // 自动提交
                    autoSubmit: false,
                    // 选择文件之后…
                    onChange: function (file, extension) {
                        if (new RegExp(/(jpg)|(jpeg)|(bmp)|(gif)|(png)/i).test(extension)) {
                            $("#filepath").val(file);
                        } else {
                            alert("只限上传图片文件,请重新选择!");
                        }
                    },
                    // 开始上传文件
                    onSubmit: function (file, extension) {
                        $("#state").val("正在上传" + file + "..");
                    },
                    // 上传完成之后
                    onComplete: function (file, response) {
                        if (response == "Success") $("#state").val("上传完成!");
                        else $("#state").val(response);
                    }
                }

                // 初始化图片上传框
                var oAjaxUpload = new AjaxUpload(‘#selector‘, uploadOption);

                // 给上传按钮增加上传动作
                $("#up").click(function ()
                {
                    oAjaxUpload.submit();
                });
            });
        </script>
    </head>
    <body>
        <div>
            <label>一个普通的按钮:</label><input type="button" value="选取图片" id="selector" />
            <br />
            <label>选择的图片路径:</label><input type="text" readonly="readonly" value="" id="filepath" />
            <br />
            <label>不是submit按钮:</label><input type="button" value="上传" id="up" />
            <br />
            <label>上传状态和结果:</label><input type="text" readonly="readonly" value="" id="state" />
        </div>
    </body>
</html>

Upload.aspx

<%@ Page Language="C#" %>
<%
    Response.ClearContent();
    try
    {
        if (Request.Files.Count == 0) Response.Write("Error");
        else
        {
            HttpPostedFile file= Request.Files[0];

            string ext = System.IO.Path.GetExtension(file.FileName);
            string folder = HttpContext.Current.Server.MapPath("~\\Upload\\");
            string path = folder + Guid.NewGuid().ToString() + ext;
            file.SaveAs(path);

            Response.Write("Success");
        }
    }
    catch
    {
        Response.Write("Error");
    }
%>

3.利用ajaxfileupload.html

ajaxfileupload.html

<html>
<head>
    <title>Ajax File Uploader Plugin For Jquery</title>
    <script src="Scirpt/jquery.js" type="text/javascript"></script>
    <script src="Scirpt/ajaxfileupload.js" type="text/javascript"></script>
    <script type="text/javascript">
        function ajaxFileUpload() {
            $("#loading")
        .ajaxStart(function () {
            $(this).show();
        })
        .ajaxComplete(function () {
            $(this).hide();
        });

            $.ajaxFileUpload
            (
                {
                    url: ‘Upload3.aspx‘,
                    secureuri: false,
                    fileElementId: ‘fileToUpload‘,
                    dataType: ‘json‘,
                    data: { name: ‘logan‘, id: ‘id‘ },
                    success: function (data, status) {
                        if (typeof (data.error) != ‘undefined‘) {
                            if (data.error != ‘‘) {
                                alert(data.error);
                                //alert(data.error.toJSONString());
                            } else {
                                alert(data.msg);
                                //alert(data.toJSONString());
                            }
                        }
                    },
                    error: function (data, status, e) {
                        //alert(e.toJSONString());
                        alert(e);
                    }
                }
            )

            return false;

        }
    </script>
</head>
<body>
    <div id="wrapper">
        <div id="content">
            <h1>
                Ajax File Upload Demo</h1>
            <img id="loading" src="loading.gif" style="display: none;">
            <form name="form" action="" method="post" enctype="multipart/form-data">
            <table cellpadding="0" cellspacing="0" class="tableForm">
                <thead>
                    <tr>
                        <th>
                            Please select a file and click Upload button
                        </th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>
                            <input id="fileToUpload" type="file" size="45" name="fileToUpload" class="input" />
                        </td>
                    </tr>
                </tbody>
                <tfoot>
                    <tr>
                        <td>
                            <button class="button" id="buttonUpload" onclick="return ajaxFileUpload();">
                                Upload</button>
                        </td>
                    </tr>
                </tfoot>
            </table>
            </form>
        </div>
</body>
</html>

Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Upload
{
    public partial class Upload3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HttpFileCollection files = HttpContext.Current.Request.Files;
            if (null == files || files.Count == 0)
            {
                //DoNothing
            }
            else
            {
                string msg = null;
                msg = UploadMain();
                //Response.ContentType = "application/json";
                Response.Write(msg);
                Response.End();
            }
        }

        private string UploadMain()
        {
            HttpPostedFile file = Request.Files[0];

            string ext = System.IO.Path.GetExtension(file.FileName);
            string folder = HttpContext.Current.Server.MapPath("~\\Upload\\");
            string fileName = Guid.NewGuid().ToString() + ext;
            string path = folder + fileName;
            file.SaveAs(path);

            string message = getMsg("0047 File Upload Success!", null);

            return message;
        }

        private string getMsg(string msg, string err)
        {
            if (String.IsNullOrEmpty(msg))
            {
                msg = "";
            }
            if (String.IsNullOrEmpty(err))
            {
                err = "";
            }

            string message = "{";
            message += "msg:‘#msg#‘,";
            message += "error:‘#err#‘";
            message += "}";

            return message.Replace("#msg#", msg).Replace("#err#", err);

        }
    }
}

4.html5+html5uploader.js

html5uploder.htm

<!DOCTYPE html>
<html>
<script src="Scirpt/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="Scirpt/jquery.html5uploader.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $("#multiple").html5Uploader({
            postUrl: "Upload2.aspx",
            onSuccess: function (a, b, c) {
                var img = $(‘<img/>‘).attr(‘src‘, "http://localhost:83/Upload/"+c).css(‘width‘, ‘140px‘).css(‘height‘, ‘140px‘).css(‘margin‘, ‘10px‘);
                $(‘#content‘).append(img);
            }
        });
    });
</script>
<head>
    <title></title>
</head>
<body>
    <input id="multiple" type="file" accept="image/*"  multiple />
    <div id="content"></div>
</body>
</html>

Default2.aspx

<%@ Page Language="C#" %>
<%
    Response.ClearContent();
    try
    {
        if (Request.Files.Count == 0) Response.Write("Error");
        else
        {
            HttpPostedFile file= Request.Files[0];

            string ext = System.IO.Path.GetExtension(file.FileName);
            string folder = HttpContext.Current.Server.MapPath("~\\Upload\\");
            string fileName = Guid.NewGuid().ToString()+ext;
            string path = folder + fileName;
            file.SaveAs(path);

            Response.Write(fileName);
        }
    }
    catch
    {
        Response.Write("Error");
    }
%>

Jquery_异步上传文件多种方式归纳,布布扣,bubuko.com

时间: 2024-09-29 16:34:43

Jquery_异步上传文件多种方式归纳的相关文章

异步上传文件多种方式归纳

最近在做异步上传文件的工作,用到了一些库,这里归纳下,暂且不考虑异常处理,仅作为demo. 1.不用任何插件,利用iframe,将form的taget设为iframe的name,注意设为iframe的id是没用的,跟网上很多说的不太一致 iframe_upload.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

Asp.Net Mvc异步上传文件的方式

今天试了下mvc自带的ajax,发现上传文件时后端action接收不到文件, Request.Files和HttpPostedFileBase都接收不到.....后来搜索了下才知道mvc自带的Ajax不支持文件上传,无奈之下只能用其他的方式 第一种方式:通过 jquery的ajaxSubmit --->(先引入jQuery脚本)需要引入jquery.form.min.js(可以通过NuGet下载) 直接上代码 @{ Layout = null; } <!DOCTYPE html> <

简述三种异步上传文件方式

 很久没写过博客了! 上次写已经是去年的12月了,离现在也有足足三个月了.这几个月因为要搭建个人网站以及准备个人简历,包括最近要准备最近的各大公司的实习春招,很难抽时间来写博客,这次的异步文件上传我觉得是很有必要了解的,笼络了很多知识点,因此准备写一篇博客来巩固下. 异步上传文件是为了更好的用户体验,是每个前端必须掌握的技能.这里我提出三点有关异步文件上传的方式. 使用第三方控件,如Flash,ActiveX等浏览器插件上传. 使用隐藏的iframe模拟异步上传. 使用XMLHttpReques

jQuery插件-ajaxFileUpload异步上传文件

ajaxFileUpload是前两天学习过程中接触到的一个JQ插件,功能很简单,就是实现异步上传文件的功能. 1.语法介绍 $.ajaxFileUpload([setting]); 参数说明: (1)url——执行上传处理的地址: (2)secureuri——是否启用安全提交,默认为false: (3)fileElementId——需要上传<input type=”file”>控件id属性值: (4)data——自定义参数,即需要额外传递的JSON格式数据: (5)type——请求方式,提交自

前端之web上传文件的方式

前端之web上传文件的方式 本节内容 web上传文件方式介绍 form上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe构造请求上传文件 1. web上传文件方式介绍 在web浏览器上传文件一般有以下几种方式: form表单上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe上传文件 其中form提交数据之后会整个刷新页面:js通过ajax上传文件虽然不会刷新整个页面,但是他们都是通过使用formdata对

【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现ajaxFileUpload这个插件挺不错,所以就用这个插件来做异步上传文件的效果.网上也有很多对ajaxFileUpload插件的使用的文章,不过我发现没有PHP版,所以这次服务器那边的处理就使用PHP语言来处理. 一.先对ajaxFileUpload插件的语法参数进行讲解 原理:ajaxfileu

springmvc异步上传文件

前提条件 注意:bean的id名不能改变 <!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSi

spingMVC异步上传文件

框架是个强大的东西,一般你能想到的,框架都会帮你做了,然后只需要会用就行了,spingmvc中有处理异步请求的机制,而且跟一般处理请求的方法差别不大,只是多了一个注解:spingmvc也可以将string.list.map转化成json数据:然后前台发起一个ajax请求,后台处理完成返回json数据,这就是异步上传文件的基本思路. 1.springMVC处理异步请求配置 首先是需要的jar包资源 上传文件的jar: commons-fileupload-1.2.2.jar commons-io-

使用ajaxfileupload.js异步上传文件到Servlet

前段时间帮同学做的毕业设计..好吧又是帮人做...需要上传文件,在这里使用了ajaxfileupload.js进行异步的上传文件到Servlet  ,后台保存了文件以后通过JSON返回文件路径到前端,好了废话不多说,直接上代码了... 前端页面比较简单 <input maxlength=16 type=file name="pic" id="pic" size=16 />  <input type="button" id=&qu