<%@ WebHandler Language="C#" Class="uploadPDFImage" %> using System; using System.Web; using System.Runtime.Serialization.Json; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Web.Services.Protocols; using System.Security.Cryptography; using System.Text; using System.Web.SessionState; using System.Data; public class uploadPDFImage : IHttpHandler, IReadOnlySessionState { private string _baseurl = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath.TrimEnd('/'); public void ProcessRequest (HttpContext context) { result objRet = new result(); DataContractJsonSerializer json = new DataContractJsonSerializer(objRet.GetType()); context.Response.ContentType = "application/json;charset=utf-8"; context.Response.AddHeader("Access-Control-Allow-Origin", "*"); authPermission objAuth = new authPermission(); if (!objAuth.isLogin()) { objRet.ret = "no"; objRet.err_code = "0001"; objRet.message = "尚未登入,請登入後使用"; json.WriteObject(context.Response.OutputStream, objRet); return; } string picFile = (context.Request["picFile"] == null) ? "" : context.Request["picFile"].ToString(); string filename = (context.Request["filename"] == null) ? "" : context.Request["filename"].ToString(); string filetype = (context.Request["filetype"] == null) ? "" : context.Request["filetype"].ToString(); string fileClientName = globalClass.CreateCaseRandomCode(16); if (!(filetype == "image/jpeg" || filetype == "image/png" || filetype == "application/pdf" || filetype == "image/jpg")) { objRet.ret = "no"; objRet.err_code = "0002"; objRet.message = "不支援檔案格式為" + filetype; json.WriteObject(context.Response.OutputStream, objRet); return; } if (filetype == "application/pdf") { fileClientName = fileClientName + ".pdf"; } if (filetype == "image/jpeg" || filetype == "image/jpg") { fileClientName = fileClientName + ".jpg"; } if (filetype == "application/png") { fileClientName = fileClientName + ".png"; } string filePath = string.Format("upload_files/{0}", fileClientName).Replace("/", "\\"); string path = System.Web.HttpContext.Current.Server.MapPath("~/"); globalClass.Base64ToFile(picFile, path + filePath); objRet.fileName = filename; objRet.fileLinkName = fileClientName; objRet.fileUrl = _baseurl + "/upload_files/" + fileClientName; objRet.fileType = filetype; objRet.ret = "yes"; json.WriteObject(context.Response.OutputStream, objRet); return; } public class result { public string ret = "no"; public string err_code = "0000"; public string message = ""; public string fileName = ""; public string fileUrl = ""; public string fileType = ""; public string fileLinkName = ""; } public bool IsReusable { get { return false; } } }