Re: [csharp-l] Como subir archivo en entorno win

Uso o seguinte código em uma web panel


Event Start
    /*
    Upload web sin archivos adicionales.
    Genexus Version: 7.5 / 8.0
    Generator: .Net web    
    */
    &ServerPath=PRetornaPath.Udp()                    // Path absoluto donde se subiran los archivos.
                                                      // el usuario ASPNET debe tener permisos de escritura en el.
    &ServerPath += "\" + &Path + "\"
    // &ErrCod=0 si el upload fue satisfactorio
    // &ErrCod=1 si el usuario dio Confirmar sin seleccionar ningun archivo.
    // &ErrCod=2 si ocurrio alguna excepcion al tomar el archivo y grabarlo en disco en el server.
    // en este ultimo caso la variable &ErrDes contiene la descripcion de la excepcion.
    // Control tipo file en el formulario y cambio de encoding
    FileControlForm.Caption='<INPUT id="UPFILE" name="UPFILE" type="file" class="Edit" size="35"><script language="javascript">document.forms['+'0'+'].encoding = "multipart/form-data"</script>'
EndEvent  // Start

Event Enter
    csharp System.Web.HttpPostedFile UPLFile = (System.Web.HttpPostedFile)[!&HttpRequest!].Request.Files["UPFILE"];
    csharp if(UPLFile!=null && UPLFile.FileName!="") {
    csharp try { UPLFile.SaveAs([!&ServerPath!]+UPLFile.FileName.Substring(UPLFile.FileName.LastIndexOf("\\")+1));
    csharp [!&FileName!]=UPLFile.FileName.Substring(UPLFile.FileName.LastIndexOf("\\")+1);
    csharp [!&FileSize!]=UPLFile.ContentLength;
    &ErrCod=0
    &ErrDes="OK"
    csharp }catch(Exception ex){[!&ErrCod!]=2;[!&ErrDes!]=ex.ToString();}}else{
    &ErrCod=2
    &ErrDes="Deve Selecionar um Arquivo"
    csharp }

    if(&ErrCod<>0)
        msg(&ErrDes)
    else

        Button1.Visible = 0
        msg("Arquivo: "+&FileName + " Enviado com sucesso")
        &DescSize = ' bytes'
        if &FileSize > 1024
           &FileSize = &FileSize / 1024
           &DescSize = ' KB'
        endif
        if &FileSize > 1024
           &FileSize = &FileSize / 1024
           &DescSize = ' MB'
        endif
        if &FileSize > 1024
           &FileSize = &FileSize / 1024
           &DescSize = ' GB'
        endif
        msg(trim(str(&FileSize,18,2))+&DescSize)
    endif

    // si el upload es satisfactorio, en &FileName se encuentra el nombre del archivo y en &FileSize el tamaño en bytes.
EndEvent  // Enter


Em 24/02/2011 09:20, Cristian Maurel escreveu:

Buenos dias
 
Para Gx9 entorno WINDOWS .NET, alguien tiene un codigo para enviarme? Necesito subir un archivo a mi web server SIN usar ftp. No importa si es en un Work panel, reporte o procedimiento, NO web panel, pero debe ser para entorno WIN por favor.
Desde ya muchas gracias

1 Response to "Re: [csharp-l] Como subir archivo en entorno win"

  1. Manuel Reyes says:
    12 de junio de 2012 a las 8:13

    Subir Archivos al Servidor, Web, GeneXus 9

    Buen dia!.
    Estoy desarrollando una aplicacion en GeneXus 9, .NET, Web, MySQL, en la cual cada usuario podrá cargar cierta cantidad de archivos de diferentes tamaños cada uno(imágenes, documentos, etc.), y que los archivos puedan ser descargados después individualmente. Quisiera saber si hay alguna manera por la cual el usuario pueda realizar dicha acción, que cuando seleccione un documento, este sea almacenado en una carpeta especificada en el servidor.

    Anticipo que ya utilicé la manera de almacenarlos en campos de tipo BLOB, pero solo me permite almacenar archivos menores a 200KB, porque si son mayores a 200KB la pagina web no termina de cargar, y a cierto tiempo aparece un error en tiempo de ejecución y no almacena ningún dato en la base de datos. Ademas lo que he investigado que no es recomendable almacenar archivos grandes en la base de datos.
    He también generado la misma aplicación para Java, y solo me permite archivos menores de 950KB, mi problema es que el usuario debe de subir archivos de tamaños diferentes, por ejemplo de hasta 20MB. Por eso quisiera saber si hay una manera de subir archivos de manera fisica al servidor, para capturar su URL y luego ser descargados teniendo su URL, todo sera en entorno WEB, GeneXus 9, ya sea .Net o Java.

    Espero alguien me pueda brindar una solución a lo que necesito.

    De antemano, muchas gracias!.

Publicar un comentario