Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucionado Tratar ficheros adjuntos
07-08-2017, 11:41 AM
Mensaje: #1
Tratar ficheros adjuntos
Hola, tengo un par cuestiones sobre los prop type="AT"

* Es posible conocer la extensión del archivo para saber si es jpg, pdf, txt...???
* Es posible conocer la ruta original del archivo para moverlo a la carpeta files?

La idea es añadir a la app de XOne documentos generados desde una aplicación externa, con lo que el usuario busca el documento (imagen, pdf...) desde un prop AT para añadirlo, y cuando lo guarda, para tener el documento identificado, la idea es renombrar este documento para que coincida con el ROWID del registro.

Gracias de antemano!
Encuentra todos sus mensajes
07-08-2017, 12:51 PM
Mensaje: #2
RE: Tratar ficheros adjuntos
El nombre del fichero debes de tenerlo en la propiedad de tipo AT, ahí tendrías que buscar la extensión que tiene.

Se puede renombrar un fichero de tipo PH, AT, etc con el objeto FileManager.

En el siguiente código renombramos un fichero de tipo PH, poniéndole el nombre que nosotros queramos:

Código:
ObjIC("DESCRIPCION")=cstr(this("TAREAID"))+"_Anulacion.jpg"  
        Set obj01 = CreateObject("FileManager")
               obj01.Rename ObjIC("FOTO"),ObjIC("DESCRIPCION")
               ObjIC("FOTO") = ObjIC("DESCRIPCION")
        obj01=nothing
ObjIC.save
Set ObjIC=nothing

Si en lugar de renombrar el fichero original quieres copiarlo, tendrías que utilizar el método copy en lugar del rename.

http://www.xoneisp.com/xoneWiki/doku.php...ager:start
Encuentra todos sus mensajes
07-08-2017, 01:22 PM
Mensaje: #3
RE: Tratar ficheros adjuntos
Hola Manuel,
de esa manera consigo, efectivamente, renombrar el fichero.
El script que he montado es algo así, por si a alguien le sirve:

Código XOne:
//Genero y guardo el objeto de la coleccion para tener ROWID
//....
//Una vez que tengo ROWID, renombrar fichero y añadirlo al registro
var obj01 createObject("FileManager");
var 
res obj01.fileExists(self["MAP_AT_DOCUMENTO"]);
if (
res == 0) {
    var 
extension getFileExtension(self["MAP_AT_DOCUMENTO"]);
    var 
fichero=Obj["ROWID"]+"."+extension;
    var 
resMove obj01.move(self["MAP_AT_DOCUMENTO"],fichero);
    
Obj["DOCUMENTO"]= fichero;
    
Obj["MK_BAJA"]=0;    
    
Obj.save();


y la funcion getFileExtension:

Código XOne:
function getFileExtension(fichero){
    if (
safeToString(fichero).length 0){
        var 
fichero.split(".");
        if (
s.length 0) return s[s.length-1];
    }
    return 
"";

Ahora lo que me faltaría es poder eliminar el fichero de la ruta original para no tener duplicado el fichero ocupando el doble de espacio. Eso sería posible? o tendría que eliminarlo manualmente el usuario?
Un saludo!
Encuentra todos sus mensajes
07-08-2017, 03:29 PM
Mensaje: #4
RE: Tratar ficheros adjuntos
Tienes el método delete, pero si has utilizado el método move no deberías seguir teniendo el fichero original...
Encuentra todos sus mensajes
08-08-2017, 08:00 AM
Mensaje: #5
RE: Tratar ficheros adjuntos
ok, lo reviso, me daba la sensación que el move me esta dejando el original.
Un saludo!
Encuentra todos sus mensajes
Tema cerrado 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS