English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Libreria Client
  • Libreria Applicazione
  • Eventi

On File Uploaded

evento copia link

Condizioni di notifica

Questo evento viene notificato all'applicazione quando una Traylet o un campo multi upload effettua l'upload di un file dal client.

Utilizzo consigliato

La routine di gestione di questo evento deve gestire il file arrivato dalla Traylet, ad esempio salvandolo in un BLOB del database.

Argomenti

Command Comando arrivato dalla Traylet tramite query string. Normalmente contiene l'ID dell'oggetto TrayletFile in modo da poterlo recuperare dal TrayletManager.
File Name Nome del file come era salvato nell'hard disk del client.
Size Dimensione in byte del file.
Mime Type Tipo MIME del file.
Save To E' un parametro di input/output che contiene il percorso completo del file sul server, in modo da poterlo leggere o utilizzare. Se si imposta questo parametro a Empty String il file viene poi cancellato, se lo si cambia il file verrà spostato nella nuova posizione.
Form Videata dalla quale è stato inviato il file.
Panel Pannello dal quale è stato inviato il file.
Field Indice del campo dal quale è stato inviato il file.

Note

  • Questo evento viene notificato anche dalla Shell dopo l'utilizzo delle funzioni TakePicture e RecStop.
    In questi casi se l'applicazione è Offline il parametro SaveTo contiene la fotografia o la registrazione come BLOB, e può essere caricata sul database locale con la funzione LoadBlobFile.
  • Il parametro Form è stato introdotto nella versione 8.5 per i campi multi upload.
  • I parametri Panel e Field sono stati introdotti nella versione 19.0 per i campi multi upload.
  • In versione 21.5 l'upload di file da sessioni non autenticate è stato bloccato; il caso è stato gestito nella release successiva (vedi nota seguente). Per permettere l'upload da shell nativa o altre applicazioni raccomandiamo di aggiornare la versione.
  • A partire dalla versione 22.0 se la sessione non è autenticata (ovvero il POST dei file viene eseguito da un'applicazione di terze parti o una applicazione offline sviluppata con Instant Developer) ed il file non viene spostato cambiando il valore del parametro SaveTo il file viene automaticamente rimosso dal sistema. Questo perché non è sicuro lasciare nella cartella TEMP file caricati da app di terze parti che il programmatore non ha gestito tramite la copia o spostamento del file.

Esempio di codice

// ***********************************
// Fired when a FILE has been uploaded
// ***********************************

event TrayletServer.OnFileUploaded(
  string Command      // Command associated with this file
  string FileName     // Client File Name
  int Size            // Size of the file
  string MimeType     // Mime Type
  inout string SaveTo // Select file location
)
{
  TrayletFile tf = null // Il file caricato
  // 
  tf := this.TLManager.GetFile(Command)
  // 
  // Apro il recordset per il BLOB

  for each row
  {
    select
      ContenutoFile := Contenuto
      IDFile := ID
      ContenutoPresenteFile := ContenutoPresente
    from
      Files // Master Table
    where
      ID = ToInteger(tf.FileID)
    // 
    record File
      string Contenuto      // Il vero e proprio file!
      int ID                // 
      int ContenutoPresente // Vero se il file è stato caricato
    // 
    File.ContenutoPresente := True
    File.Contenuto := LoadBlobFile(SaveTo)
  }
  // 
  // Non voglio salvarlo!

  SaveTo := Empty String
}

Esempio on line

In questo esempio l'evento OnFileUploaded viene utilizzato per salvare in un BLOB i file in arrivo dalla Traylet.

Ultima modifica: 09/12/2022 / Validità: da 6.6.2750

Vedi Anche

  • Traylet Helper
  • Take Picture (procedura)
  • Rec Stop (procedura)
  • Load Blob File (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum