using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Web;
|
using System.IO;
|
using CY.Infrastructure;
|
using CY.BLL;
|
using CY.Model;
|
using System.Web.SessionState;
|
|
namespace CY.WebForm
|
{
|
/// <summary>
|
/// Ajax 的摘要说明
|
/// </summary>
|
public class Ajax : IHttpHandler, IReadOnlySessionState, IRequiresSessionState
|
{
|
#region 定义目录和初始
|
|
/// <summary>
|
/// 临时目录
|
/// </summary>
|
static string temppath = "/images/Upload/" + DateTime.Now.ToString("yyyyMMdd") + "/temp/";
|
/// <summary>
|
/// 保存文件目录
|
/// </summary>
|
static string path = "/images/Upload/" + DateTime.Now.ToString("yyyyMMdd") + "/";
|
/// <summary>
|
/// 当前登陆人
|
/// </summary>
|
EC_MemberBasic m_EC_MemberBasic = new EC_MemberBasic();
|
|
public void ProcessRequest(HttpContext context)
|
{
|
m_EC_MemberBasic = context.Session["nowMemberLogin"] as EC_MemberBasic;
|
|
//区分参数
|
string AjaxSign = context.Request.QueryString["input"];
|
//返回上次后的地址
|
string overpath = "";
|
//上传
|
string result = fajaxUpLoad(context, out overpath);
|
|
DealAjax(AjaxSign, overpath);
|
HttpContext.Current.Response.Clear();
|
HttpContext.Current.Response.Write(result);
|
HttpContext.Current.Response.End();
|
}
|
|
#endregion
|
|
#region 修改部分
|
|
/// <summary>
|
/// 处理程序
|
/// </summary>
|
/// <param name="AjaxSign">区分参数</param>
|
/// <param name="path">文件地址</param>
|
private void DealAjax(string AjaxSign, string path)
|
{
|
if (AjaxSign == "member_logo")
|
{
|
OA_StaffResumeBLL bll_OA_StaffResumeBLL = new OA_StaffResumeBLL();
|
|
//path存储到用户头像字段
|
Model.OA_StaffResume m_OA_StaffResume = bll_OA_StaffResumeBLL.GetModelByMemberid(m_EC_MemberBasic.MemberId);
|
if (m_OA_StaffResume != null && !string.IsNullOrEmpty(path))
|
{
|
m_OA_StaffResume.R_G_Avatar = path; //MP_Avatar[Type=string] - 头像
|
bll_OA_StaffResumeBLL.UpdateModel(m_OA_StaffResume);
|
}
|
}
|
}
|
|
#endregion
|
|
#region 处理程序
|
|
private string fajaxUpLoad(HttpContext context, out string overpath)
|
{
|
overpath = "";
|
if (!string.IsNullOrEmpty(context.Request["Filename"]) && !string.IsNullOrEmpty(context.Request["Upload"]))
|
{
|
CY.WebForm.cs.UploadCS.UpFileResult _UpFileResult0 = CY.WebForm.cs.UploadCS.Upload("", temppath, "");
|
//string filepath = CY.WebForm.cs.UploadCS.GetRootUrl(_UpFileResult0.returnfilename.Count > 0 ? _UpFileResult0.returnfilename[0].ToString() : "");
|
string filepath = (_UpFileResult0.returnfilename.Count > 0 ? _UpFileResult0.returnfilename[0].ToString() : "");
|
HttpContext.Current.Response.Clear();
|
HttpContext.Current.Response.Write(filepath);
|
HttpContext.Current.Response.End();
|
}
|
if (!string.IsNullOrEmpty(context.Request["avatar1"]) && !string.IsNullOrEmpty(context.Request["avatar2"]) && !string.IsNullOrEmpty(context.Request["avatar3"]))
|
{
|
string result = string.Empty;
|
|
//if (!(SaveAvatar("avatar1", uid) && SaveAvatar("avatar2", uid) && SaveAvatar("avatar3", uid)))
|
if (!SaveAvatar("avatar1", path, out overpath))
|
{//失败
|
result = "<?xml version=\"1.0\" ?><root><face success=\"0\"/></root>";
|
}
|
else
|
{
|
result = "<?xml version=\"1.0\" ?><root><face success=\"1\"/></root>";
|
}
|
return result;
|
}
|
return null;
|
}
|
|
private byte[] FlashDataDecode(string s)
|
{
|
byte[] r = new byte[s.Length / 2];
|
int l = s.Length;
|
for (int i = 0; i < l; i = i + 2)
|
{
|
int k1 = ((int)s[i]) - 48;
|
k1 -= k1 > 9 ? 7 : 0;
|
int k2 = ((int)s[i + 1]) - 48;
|
k2 -= k2 > 9 ? 7 : 0;
|
r[i / 2] = (byte)(k1 << 4 | k2);
|
}
|
return r;
|
}
|
|
private bool SaveAvatar(string avatar, string path, out string overpath)
|
{
|
overpath = "";
|
byte[] b = FlashDataDecode(HttpContext.Current.Request[avatar]);
|
if (b.Length == 0)
|
return false;
|
string size = "";
|
if (avatar == "avatar1")
|
size = "large";
|
else if (avatar == "avatar2")
|
size = "medium";
|
else
|
size = "small";
|
|
string filename = DateTime.Now.ToString("yyyyMMddHHmmssffff") + MathRandom.RandomNumber(4).ToString() + "_{0}." + "jpg";
|
filename = string.Format(filename, size);
|
string AllFolderPath = CY.WebForm.cs.UploadCS.GetMapPath(path);
|
if (!Directory.Exists(AllFolderPath))
|
Directory.CreateDirectory(AllFolderPath);
|
FileStream fs = new FileStream(AllFolderPath + filename, FileMode.Create);
|
fs.Write(b, 0, b.Length);
|
fs.Close();
|
overpath = path + filename;
|
return true;
|
}
|
|
public bool IsReusable
|
{
|
get
|
{
|
return false;
|
}
|
}
|
|
#endregion
|
}
|
}
|