UploadData Object

Questions, tips and tricks and techniques for scripting in Servoy

UploadData Object

Postby Roberto Blasco » Sun Sep 19, 2010 12:00 am

Hi all!

How can I get the file name from the UploadData Object?

Code: Select all
function btn_select_file(event) {

   plugins.file.showFileOpenDialog( 1, null, false, null, callback_select_file, 'Selecciona un fichero' );
}

function callback_select_file(file){
   
    if (file) {
        application.output(file);
        plugins.file.streamFilesToServer( file, callback_stream_file );
    }
}


The function output is [UploadData[name:file_data.bin,contenttype:application/octet-stream]]

Best regards. Roberto.
Un saludo. Roberto.

Madrid - Spain
Tfno: (+34) 625653066
E-mail: roberto.blasco.serrano@gmail.com
User avatar
Roberto Blasco
007
 
Posts: 355
Joined: Tue Apr 08, 2008 7:18 pm
Location: Madrid / Spain

Re: UploadData Object

Postby ptalbot » Sun Sep 19, 2010 6:47 pm

How about file.getName()?
Patrick Talbot
Freelance - Open Source - Servoy Valued Professional
https://www.servoyforge.net
Velocity rules! If you don't use it, you don't know what you're missing!
User avatar
ptalbot
 
Posts: 1654
Joined: Wed Mar 11, 2009 5:13 am
Location: Montreal, QC

Re: UploadData Object

Postby Roberto Blasco » Sun Sep 19, 2010 9:55 pm

Hi Patrick.

I tried it before posting, and this was the output

Failed to execute the method of context batch_clave and name callback_select_file on the solution pgp
Java class "[Lcom.servoy.extensions.plugins.file.JSFile;" has no public instance field or method named "getName". (C:\Documents and Settings\Administrador\servoy_workspace.5\pgp\forms\batch_clave.js#42)
at C:\Documents and Settings\Administrador\servoy_workspace.5\pgp\forms\batch_clave.js:42 (callback_select_file)


If I try to convert it to a JSFile Object

Code: Select all
function callback_select_file(file){
   
   if (file) {
      var obj_file = plugins.file.convertToJSFile(file);
      application.output("File Name : " + obj_file.getName());
      plugins.file.streamFilesToServer( file, callback_stream_file );
   }
}


The output is

File Name : [Lcom.servoy.extensions.plugins.file.JSFile;@8e065


Best regards. Roberto.

Servoy 5.1.2
Windows XP / Ubuntu 10.04
Postgres 8
Un saludo. Roberto.

Madrid - Spain
Tfno: (+34) 625653066
E-mail: roberto.blasco.serrano@gmail.com
User avatar
Roberto Blasco
007
 
Posts: 355
Joined: Tue Apr 08, 2008 7:18 pm
Location: Madrid / Spain

Re: UploadData Object

Postby ptalbot » Mon Sep 20, 2010 7:09 am

OK. Don't know why exactly but I will have a look.

Still, I thought you were going to use JSFile.writeXXX() in the web client?
Because for smart client, you should receive a proper JSFile directly from the call to plugins.file.showFileOpenDialog() (no need for a callback).
Patrick Talbot
Freelance - Open Source - Servoy Valued Professional
https://www.servoyforge.net
Velocity rules! If you don't use it, you don't know what you're missing!
User avatar
ptalbot
 
Posts: 1654
Joined: Wed Mar 11, 2009 5:13 am
Location: Montreal, QC

Re: UploadData Object

Postby Roberto Blasco » Mon Sep 20, 2010 9:38 am

Thanks Patrick.

I know I must use JSFile.writeXXX() :D

I tried it with the plugin just for curiosity.... :roll:

Best regards. Roberto.
Un saludo. Roberto.

Madrid - Spain
Tfno: (+34) 625653066
E-mail: roberto.blasco.serrano@gmail.com
User avatar
Roberto Blasco
007
 
Posts: 355
Joined: Tue Apr 08, 2008 7:18 pm
Location: Madrid / Spain

Re: UploadData Object

Postby ptalbot » Mon Sep 20, 2010 1:58 pm

Hi Roberto,

curiosity is good! :)

Actually you should try converting it using convertToRemoteJSFile() because by the time it gets to your callback method it is already on the server...
Patrick Talbot
Freelance - Open Source - Servoy Valued Professional
https://www.servoyforge.net
Velocity rules! If you don't use it, you don't know what you're missing!
User avatar
ptalbot
 
Posts: 1654
Joined: Wed Mar 11, 2009 5:13 am
Location: Montreal, QC

Re: UploadData Object

Postby jcompagner » Tue Sep 21, 2010 10:45 am

Code: Select all
    function callback_select_file(files){
       
       if (files && files.length > 0) {
          application.output("File Name : " + obj_files[0].getName());
          plugins.file.streamFilesToServer( files[0], callback_stream_file );
       }
    }


the callback gets an array of files not just 1 file, there is multi select support..
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8833
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: UploadData Object

Postby ptalbot » Tue Sep 21, 2010 2:20 pm

Of course! Johan is right, totally forgot about it, sorry :)
Patrick Talbot
Freelance - Open Source - Servoy Valued Professional
https://www.servoyforge.net
Velocity rules! If you don't use it, you don't know what you're missing!
User avatar
ptalbot
 
Posts: 1654
Joined: Wed Mar 11, 2009 5:13 am
Location: Montreal, QC

Re: UploadData Object

Postby Roberto Blasco » Tue Sep 21, 2010 8:58 pm

Thanks Patrick, Johan.

Works perfectly. :-)

Greetings. Roberto.
Un saludo. Roberto.

Madrid - Spain
Tfno: (+34) 625653066
E-mail: roberto.blasco.serrano@gmail.com
User avatar
Roberto Blasco
007
 
Posts: 355
Joined: Tue Apr 08, 2008 7:18 pm
Location: Madrid / Spain


Return to Methods

Who is online

Users browsing this forum: No registered users and 7 guests