none
Abrir un fichero desde un boton

    Question

  • Hola:

    yo de nuevo planteando dudas estupidas, .

    Ahora mi problema consiste en que tengo un boton que lo que hace es copiar un fichero a la web en una carpeta , y ahora necesito que lo abra. Es decir una vez cargado que me abra el fichero de forma inmediata sin tener que pulsar en nada más, y  no soy capaz.. Soy un desastre.

    Estoy pensando que una solucion chapucilla puede ser que el botón me redirija a otra pagina y q en esta se muestre un link para descargar el fichero.

    Se os ocurre algo mejor?????.

    Muchas gracias por vuestra ayuda.

    Tuesday, November 21, 2006 6:54 PM

Answers

  •  

    Hola,

    Okey, compredido

    Entonces el mejor sistema sin duda es poner un link al archivo pdf en cuestion.

    Hasta google lo hace asi, pruebalo. Pon "pdf" como palabra clave y dale a buscar. Veras que los vinculos con prefijo [pdf] son directamente enlaces al archivo en cuestion.

    Que el archivo se abra directamente o pida confirmacion para bajarlo depende exclusivamente de la configuracion del Navegador Web que este usando cada persona.

    Espero haberte sido de ayuda.

    Saludos.

    Wednesday, November 22, 2006 7:19 AM
    Moderator

All replies

  •  

    Hola,

    A ver si me he enterado bien.

    Quieres que la gente suba ficheros a tu servidor web, y luego quieres dejarles ejecutarlos??

    Madre mia, eso es el padre de todos los agujeros de seguridad.

    ¿Y si meto un programa por lotes que haga un format c:?

    No te lo recomiendo. La mejor manera es ciertamente poner un link y que cada uno lo descargue y lo abra en su ordenador.

    Saludos.

    Tuesday, November 21, 2006 7:20 PM
    Moderator
  • Hola Javier:

    gracias por contestarme tan rápido. En realidad lo que pretendo es dejarles descargar ficheros en formato pdf, pero no subirlos. Eso solo lo hará el administrador de la aplicación.

    Saludos,

    Tuesday, November 21, 2006 9:11 PM
  •  

    Hola,

    Okey, compredido

    Entonces el mejor sistema sin duda es poner un link al archivo pdf en cuestion.

    Hasta google lo hace asi, pruebalo. Pon "pdf" como palabra clave y dale a buscar. Veras que los vinculos con prefijo [pdf] son directamente enlaces al archivo en cuestion.

    Que el archivo se abra directamente o pida confirmacion para bajarlo depende exclusivamente de la configuracion del Navegador Web que este usando cada persona.

    Espero haberte sido de ayuda.

    Saludos.

    Wednesday, November 22, 2006 7:19 AM
    Moderator
  • Idhun,

    Podrias aclararme si la aplicacion que contiene el boton con la que copias el archivo es 'web' o 'escritorio'?... pues en el ultimo caso dispones de contenedores (control .ocx) que puedes integrar en tus formularios para visualizar pdf "gratuito" y tambien "pagando" de terceras partes, entonces dependiendo de la aplicacion, puede ser tan sencillo como hacer referencia a la libreria : 'AcroPdf.lib' a traves de interop y...

    (Diculpa.. en Vb, si fuera necesario lo pasamos a C#)
    Friend
    WithEvents AxPDF1 As AxAcroPDFLib.AxAcroPDF
    Me.AxPDF1 = New AxAcroPDFLib.AxAcroPDF

    Me.AxPDF1.LoadFile("Documento.pdf")    'Cargar el documento
    Me.AxPDF1.Enabled = True                    'Estado disponible

    En el caso de estar hablando de una aplicacion de escritorio, para el tema de descarga de archivos en entorno privado, puedes recurrir a las librerias para ftp.
    Si necesitas intormacion adicional no dudes en contactar de nuevo.
    Pep Lluis,

    Wednesday, November 22, 2006 8:08 AM
  • Hola PepLluis,

    es una aplicación web. Gracias de todos modos. Al final lo resolveré con un link. Queda un poquito peor pero me da menos dolor de cabeza, jeje.

    Saludos,

    Wednesday, November 22, 2006 8:45 AM
  • Hola compañero, aquí tienes lo que buscas:

    Con un System.Web.UI.HtmlControls.HtmlInputFile updFichero y un botón:

    private void Button1_Click(object sender, System.EventArgs e)

    {

    if (updFichero.PostedFile!=null)

    {

    updFichero.PostedFile.SaveAs(String.Format(@"{0}\{1}", Server.MapPath("~"),Path.GetFileName(updFichero.PostedFile.FileName)));

    HttpContext.Current.Response.ClearContent();

    HttpContext.Current.Response.ClearHeaders();

    HttpContext.Current.Response.ContentType = updFichero.PostedFile.ContentType;

    HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("inline;filename={0}",Path.GetFileName(updFichero.PostedFile.FileName)));

    byte [] file = new byte[updFichero.PostedFile.ContentLength];

    updFichero.PostedFile.InputStream.Read(file, 0 , file.Length);

    HttpContext.Current.Response.BinaryWrite(file);

    HttpContext.Current.Response.End();

    }

    }

    La idea es obtener el contentype del fichero y su nombre para enviar los bytes de dicho fichero al objeto Response e Internet explorer podrá saber con que aplicación abrirlo.

    Descargar Código Fuente

    Salu2.

    Wednesday, November 22, 2006 10:55 AM
  • Hola Luis,

    el código que me aportas me será muy útil para la segunda parte de mi aplicación, cuando el administrador tenga que cargar los ficheros en el servidor. Ahora se trataba de justamente lo contrario, permitir a los usuarios descargarlos. Ya está practicamente resuelto.

    Muchas gracias por tu aportación(la tendré en cuenta) y por tu tiempo.

    Saludos,

     

    Wednesday, November 22, 2006 11:28 AM
  • Si es eso te recomiendo que eches un vistazo a este articulo:

    http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art134.asp

    Salu2.

    Wednesday, November 22, 2006 11:35 AM