<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="upload.aspx.cs" Inherits="PDF2016.upload" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>uploadify3.2上传文件</title>
    <script src="js/jquery-1.10.2.min.js"></script>
    <link href="js/uploadify3.2/uploadify.css" rel="stylesheet" />
    <script src="js/uploadify3.2/jquery.uploadify.min.js"></script>
    <script type="text/javascript">
        $(function () {
            /*************setting***************/
            var definedData = [];
            definedData.auth = "@(Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value)";
            definedData.ASPSESSID = "@Session.SessionID";
            definedData.fileTypeExts = "*.doc;*.docx;*.xls;*.xlsx;*.pdf;*.ppt;*.txt;*.rar;*.zip;*.exe";    //上传类型
            definedData.uploader = "/UploadHandler.ashx";    //后台处理路径
            definedData.fileSizeLimit = "2MB";  //上传大小
            definedData.fileObjName = "file_upload";    //控件名
            definedData.queueSizeLimit = 1;      //允许上传个数文件
            var data = { 'ASPSESSID': definedData.ASPSESSID, 'AUTHID': definedData.auth };    //firefox用swf上传丢失session

            var errorData = [];
            errorData.err100 = "文件个数超出系统限制,只允许上传" + definedData.queueSizeLimit + "个文件!";
            errorData.err110 = "文件超出系统限制的大小,限制文件大小" + definedData.fileSizeLimit + "!";
            errorData.err120 = "文件大小异常!";
            errorData.err130 = "文件类型不正确,只允许上传后缀名" + definedData.fileTypeExts + "!";
            /*************setting***************/
            $("#file_upload").uploadify({
                'buttonText': '选择资源',
                'swf': '/js/uploadify3.2/uploadify.swf',
                'uploader': definedData.uploader,
                'auto': false, //当文件被添加到队列时,自动上传
                'formData': data, //上传时传递数据
                'fileObjName': definedData.fileObjName,
                'queueSizeLimit': definedData.queueSizeLimit,
                'fileTypeExts': definedData.fileTypeExts,
                'fileSizeLimit': definedData.fileSizeLimit,
                'onUploadSuccess': function(file, data, response) {
                    $('#file_upload').uploadify('cancel', '*'); //隐藏进度条</span>
                    var dataJson = JSON.parse(data);
                    if (dataJson.Status) {
                        //上传成功
                        alert(dataJson.Message);
                    } else {
                        //上传失败
                        alert(dataJson.Message);
                    }
                },
                //返回一个错误,选择文件的时候触发
                'onSelectError': function (file, errorCode, errorMsg) {
                    switch (errorCode) {
                        case -100:
                            alert(errorData.err100);
                            break;
                        case -110:
                            alert(errorData.err110);
                            break;
                        case -120:
                            alert(errorData.err120);
                            break;
                        case -130:
                            alert(errorData.err130);
                            break;
                    }
                },
                //检测FLASH失败调用  
                'onFallback': function () {
                    alert("您未安装FLASH控件,无法上传!请安装FLASH控件后再试。");
                }
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <p><input type="file" name="file_upload" id="file_upload" /></p>
            <p>
                <img src="js/uploadify3.2/upload.jpg" style="cursor: pointer;" οnclick="javascript:$('#file_upload').uploadify('upload')" />
            </p>
        </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using Newtonsoft.Json;

namespace PDF2016
{
    /// <summary>
    /// UploadHandler 的摘要说明
    /// </summary>
    public class UploadHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Charset = "utf-8";

            UploadResult result = new UploadResult();
            HttpPostedFile file = context.Request.Files["file_upload"];
            string folder = context.Server.MapPath("~/upload/");
            if (file != null && file.ContentLength > 0)
            {
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }
                file.SaveAs(Path.Combine(folder, file.FileName));
                result.Status = true;
                result.Message =  file.FileName;
            }
            else
            {
                result.Status = false;
                result.Message = "请选择上传文件";
            }
            string json = JsonConvert.SerializeObject(result, Formatting.Indented);
            context.Response.Write(json);
        }


        public class UploadResult
        {
            public bool Status;
            public string Message;
        }

        public bool IsReusable
        {
            get { return false; }
        }
    }
}
//在Global.asax中添加如下代码
//using System.Web.Security;
protected void Application_BeginRequest(object sender, EventArgs e)
{
	try
	{
		string session_param_name = "ASPSESSID";
		string session_cookie_name = "ASP.NET_SESSIONID";

		if (HttpContext.Current.Request.Form[session_param_name] != null)
		{
			UpdateCookie(session_cookie_name, HttpContext.Current.Request.Form[session_param_name]);
		}
		else if (HttpContext.Current.Request.QueryString[session_param_name] != null)
		{
			UpdateCookie(session_cookie_name, HttpContext.Current.Request.QueryString[session_param_name]);
		}
	}
	catch (Exception)
	{
	}

	try
	{
		string auth_param_name = "AUTHID";
		string auth_cookie_name = FormsAuthentication.FormsCookieName;

		if (HttpContext.Current.Request.Form[auth_param_name] != null)
		{
			UpdateCookie(auth_cookie_name, HttpContext.Current.Request.Form[auth_param_name]);
		}
		else if (HttpContext.Current.Request.QueryString[auth_param_name] != null)
		{
			UpdateCookie(auth_cookie_name, HttpContext.Current.Request.QueryString[auth_param_name]);
		}

	}
	catch (Exception)
	{
	}


}
void UpdateCookie(string cookie_name, string cookie_value)
{
	HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name);
	if (cookie == null)
	{
		HttpCookie cookie1 = new HttpCookie(cookie_name, cookie_value);
		Response.Cookies.Add(cookie1);
	}
	else
	{
		cookie.Value = cookie_value;
		HttpContext.Current.Request.Cookies.Set(cookie);
	}
}


本文转载:CSDN博客