<%@ WebHandler Language="C#" Class="FileUploadHandler" %> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.IO; using System.Web.Script.Serialization; /// /// Descripción breve de FileUploadHandler /// public class FileUploadHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { try { if (context.Request.QueryString["upload"] != null && context.Request.QueryString["solicitud"] != null && context.Request.QueryString["fkrequisito"] != null && context.Request.QueryString["pksolicitud"] != null && context.Request.QueryString["texto"] != null && context.Request.QueryString["origen"] != null) { //string pathrefer = context.Request.UrlReferrer.ToString(); string Serverpath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString(); // HttpContext.Current.Server.MapPath("DocumentosPDF"); Serverpath += "\\" + context.Request.QueryString["solicitud"].ToString() + "\\DocumentosREQ"; var postedFile = context.Request.Files[0]; string ext = Path.GetExtension(postedFile.FileName); //if (ext == ".pdf" || ext == ".PDF") { string file; //For IE to get file name if (HttpContext.Current.Request.Browser.Browser.ToUpper() == "IE") { string[] files = postedFile.FileName.Split(new char[] { '\\' }); file = files[files.Length - 1].Replace(" ","_"); } else { file = postedFile.FileName.Replace(" ", "_"); } if (!Directory.Exists(Serverpath)) Directory.CreateDirectory(Serverpath); string fileDirectory = Serverpath; if (context.Request.QueryString["fileName"] != null) { file = context.Request.QueryString["fileName"].Replace(" ", "_"); if (File.Exists(fileDirectory + "\\" + file)) { File.Delete(fileDirectory + "\\" + file); } } //string ext = Path.GetExtension(fileDirectory + "\\" + file); //file = Guid.NewGuid() + ext; fileDirectory = Serverpath + "\\" + file; if (context.Request.QueryString["DOCFISICO"] != null) fileDirectory = Serverpath + "\\" + context.Request.QueryString["solicitud"].ToString() + "_DF.pdf"; if (File.Exists(fileDirectory) == false) { postedFile.SaveAs(fileDirectory); context.Response.AddHeader("Vary", "Accept"); try { if (context.Request["HTTP_ACCEPT"].Contains("application/json")) context.Response.ContentType = "application/json"; else context.Response.ContentType = "text/plain"; } catch { context.Response.ContentType = "text/plain"; } int nPKDocumento = 0; if (context.Request.QueryString["origen"] == "requisito") { AyABL.TRA.documentoBL objdocumentoBL = new AyABL.TRA.documentoBL(); objdocumentoBL.objdocumentoEL.Descripcion = context.Request.QueryString["texto"]; objdocumentoBL.objdocumentoEL.NOMBRE = postedFile.FileName.Replace(" ", "_"); objdocumentoBL.objdocumentoEL.FKREQUISITO = int.Parse(context.Request.QueryString["fkrequisito"]); objdocumentoBL.objdocumentoEL.FKSOLICITUD = int.Parse(context.Request.QueryString["pksolicitud"]); nPKDocumento = objdocumentoBL.insertarDocumento(); } if (context.Request.QueryString["origen"] == "adjunto") { AyABL.Tran.adjuntoBL objdocumentoBL = new AyABL.Tran.adjuntoBL(); objdocumentoBL.objadjuntoEL.NOMBRE = postedFile.FileName; objdocumentoBL.objadjuntoEL.DESCRIPCION = context.Request.QueryString["texto"]; objdocumentoBL.objadjuntoEL.FKSOLICITUD = int.Parse(context.Request.QueryString["pksolicitud"]); nPKDocumento = objdocumentoBL.insertarAdjunto(); } //if (nPKDocumento != 0) //{ // //context.Response.Write("Success"); // context.Response.ContentType = "text/plain"; // context.Response.Write(file); //} //else //{ // File.Delete(fileDirectory); //} if(File.Exists(fileDirectory)) { context.Response.ContentType = "text/plain"; context.Response.Write(file); } else { context.Response.ContentType = "text/plain"; context.Response.Write("falloGuardar"); } return; } else { context.Response.ContentType = "text/plain"; context.Response.Write("falloExiste"); return; } } //else //{ // context.Response.Write("errorEXT"); // return; //} } if (context.Request.QueryString["pkeliminar"] != null && context.Request.QueryString["solicitud"] != null) { string Serverpath = HttpContext.Current.Server.MapPath("DocumentosPDF"); Serverpath += "\\" + context.Request.QueryString["solicitud"].ToString() + "\\DocumentosREQ"; string file = context.Request.QueryString["pkeliminar"]; string fileDirectory = Serverpath + "\\" + file; //File.Delete(fileDirectory); var wrapper = new { d = "exitoso" }; context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(wrapper)); return; } } catch (Exception exp) { context.Response.Write(exp.Message); } } public bool IsReusable { get { return false; } } }