- <%@ 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);
- }
- }