public ActionResult SubirArchivo(HttpPostedFileBase file, string persona) { try { string token = HttpContext.Request.Cookies["userID"].Value; int cifradoValue = Int16.Parse(HttpContext.Request.Cookies["cifrado"].Value); //Subir archivo al servidor string path = Path.Combine(Directories.directorioUploads, Path.GetFileName(file.FileName) ?? ""); UploadFile(path, file); //Comprimir string rutaComprimido = LZW.comprimirArchivo(path, Directories.directorioTemporal); //Cifrar SDES cipher = new SDES(); string rutaCifrado = cipher.CifrarArchivo(rutaComprimido, Directories.directorioArchivos, cifradoValue); //Pasar ruta como parametro string rutaAmigable = rutaCifrado.Replace("/", "~"); rutaAmigable = rutaAmigable.Replace(@"\", "~"); string mensaje = $"<a href=\"/Chat/Descargar?path={rutaAmigable}\" onclick=\"clickAndDisable(this);\">{file.FileName}</a>"; MensajeModelo nuevo = new MensajeModelo(); nuevo.mensaje = cipher.CifrarTexto(mensaje, cifradoValue); nuevo.receptor = persona; nuevo.receptor = nuevo.receptor.Replace(" ", ""); nuevo.esArchivo = true; using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://localhost:44316/api/chat"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var postJob = client.PostAsJsonAsync <MensajeModelo>("chat", nuevo); postJob.Wait(); var postResult = postJob.Result; if (postResult.IsSuccessStatusCode) { return(RedirectToAction("Index")); } else { return(RedirectToAction("Login", "Login")); } } return(RedirectToAction("Index", "Chat")); } catch (Exception e) { return(RedirectToAction("Login", "Login")); } }