Utilizo el siguiente codigo para mostrar un archivo que funciona localmente y cuando pongo en produccion no. Los clientes no ven los archivos pero en el servidor que contiene la aplicacion se puede ver el archivo generado espero haberme explicado gracias desde ya.
protected override void Render(HtmlTextWriter writer)
{
Response.Clear();
Response.Charset = string.Empty;
Response.ClearContent();
Response.ClearHeaders();
this.EnableViewState = false;
int idArchivo = -1;
if (Request["ID"] != null)
{
if (!int.TryParse(Request["ID"].ToString(), out idArchivo))
idArchivo = -1;
else
{
//vamos a mostrar el archivo 0 sino tiene que es una imagen por defecto
if (idArchivo == -1)
idArchivo = 0;
}
}
bool mostrarMiniatura = true;
if(Request["O"] != null)
mostrarMiniatura = Request["O"].ToString() != "1";
string descargar = string.Empty;
if (Request["D"] != null)
descargar = Request["D"].ToString();
if (idArchivo != -1)
{
Archivo_Entidad arc = Archivo.ObtenerMultimedia(null, idArchivo, mostrarMiniatura, BaseDatos.ObtenerMultimedia(0));
if (arc != null)
{
if (descargar != null && descargar == "1")
Response.AddHeader("content-disposition", "attachment; filename=" + arc.IdArchivo.ToString() + "." + arc.Mime.Extension);
Response.ContentType = arc.Mime.Descripcion;
if (arc.Mime.Descripcion.Trim().StartsWith("image/"))
{
//Es imagen
System.Drawing.Image imagen;
if (mostrarMiniatura)
imagen = Imagen.ConvertToImagen(arc.Prevista);
else
imagen = Imagen.ConvertToImagen(arc.Archivo);
imagen.Save(Response.OutputStream, Imagen.GetImageFormat(arc.Mime.Extension));
}
else
{
if (mostrarMiniatura)
{
if (arc.Prevista != null)
Context.Response.OutputStream.Write(arc.Prevista, 0, arc.Prevista.Length);
}
else
{
if (arc.Archivo != null)
Context.Response.OutputStream.Write(arc.Archivo, 0, arc.Archivo.Length);
0);
}
}
}
}
}