Scopo
Questa funzione permette di inviare un file al web service. Il web service memorizza il file nel suo file system e ritorna il percorso all'applicazione che ha effettuato l'upload. L'applicazione può quindi effettuare una ulteriore chiamata al webservice passando come parametro il file su cui il webservice deve lavorare.
Sintassi
string RemoteFileName = "" // Leggo il nome del file salvato in remoto
//
RemoteFileName := WebService.SendFile(percorso locale)
//
RemoteFileName := WebService.SendFile(percorso locale)
Argomenti
Percorso locale | E' una stringa contenente il percorso completo del file da inviare al Web Service. |
Valore di ritorno
Viene ritornata una stringa contenente il percorso remoto in cui il Web Service ha salvato il file. In caso di mancato salvataggio viene ritornata una stringa nulla.
Esempio di codice
// ****************************************************************************
// Carica il file nel BLOB con ID 1 sul web service. Questa funzione viene
// chiamata subito dopo aver salvato il BLOB.
// ****************************************************************************
public void FileRepository.CaricaFile()
{
boolean presente = 0 // Vero se il file è presente sul disco
string DaCaricare = "" // File da caricare preso dal BLOB
//
for each row
{
select
...
//
record TempBLOB
int ID // Brief description of field content.
string TempBLOB // Brief description of field content.
//
DaCaricare := SaveBlobFile(TempBLOB, ??, ??)
}
//
// Se non c'è il file
if DaCaricare <> Empty String
{
string RemoteFilename = "" //
MyEsempiGLWebService ws = new() //
string remotepath = "" //
//
EsempiGL.AddTempFile(DaCaricare)
//
// Cerco di aprire il file, se non ci sono errori il file esiste
try
{
int FileN = 0 //
//
FileN := FreeFile()
EsempiGL.OpenFileForInput(DaCaricare, FileN)
EsempiGL.CloseFile(FileN)
presente := True
//
// Se non ci sono errori fin qui posso procedere
remotepath := ws.Percorso()
//
// Imposto l'indirizzo di questa istanza del Web Service
ws.Url := GetSetting(Application, WebServiceUrl)
//
// Carico il file
RemoteFilename := ws.SendFile(DaCaricare)
//
// Rinomino il file con il nome preso durante il caricamento del BLOB
ws.RinominaFile(RemoteFilename, remotepath +c this.NomeFile)
//
// Ricarico la lista da WS
this.CaricaListaDaWS()
}
catch //
{
presente := False
}
}
//
// Se il file non c'è do errore all'utente
if NOT(presente)
{
EsempiGL.MessageBox(FormatMessage(Il file |1 non è stato trovato sul
computer!, ??, ??, ??, ??, ??))
}
}
// Carica il file nel BLOB con ID 1 sul web service. Questa funzione viene
// chiamata subito dopo aver salvato il BLOB.
// ****************************************************************************
public void FileRepository.CaricaFile()
{
boolean presente = 0 // Vero se il file è presente sul disco
string DaCaricare = "" // File da caricare preso dal BLOB
//
for each row
{
select
...
//
record TempBLOB
int ID // Brief description of field content.
string TempBLOB // Brief description of field content.
//
DaCaricare := SaveBlobFile(TempBLOB, ??, ??)
}
//
// Se non c'è il file
if DaCaricare <> Empty String
{
string RemoteFilename = "" //
MyEsempiGLWebService ws = new() //
string remotepath = "" //
//
EsempiGL.AddTempFile(DaCaricare)
//
// Cerco di aprire il file, se non ci sono errori il file esiste
try
{
int FileN = 0 //
//
FileN := FreeFile()
EsempiGL.OpenFileForInput(DaCaricare, FileN)
EsempiGL.CloseFile(FileN)
presente := True
//
// Se non ci sono errori fin qui posso procedere
remotepath := ws.Percorso()
//
// Imposto l'indirizzo di questa istanza del Web Service
ws.Url := GetSetting(Application, WebServiceUrl)
//
// Carico il file
RemoteFilename := ws.SendFile(DaCaricare)
//
// Rinomino il file con il nome preso durante il caricamento del BLOB
ws.RinominaFile(RemoteFilename, remotepath +c this.NomeFile)
//
// Ricarico la lista da WS
this.CaricaListaDaWS()
}
catch //
{
presente := False
}
}
//
// Se il file non c'è do errore all'utente
if NOT(presente)
{
EsempiGL.MessageBox(FormatMessage(Il file |1 non è stato trovato sul
computer!, ??, ??, ??, ??, ??))
}
}
- La funzione SendFile non funziona se il web service non è stato creato con IN:DE.
- La funzione SendFile non funziona se il web service e l'applicazione che lo utilizza sono sviluppati in linguaggi diversi, per funzionare correttamente quindi devono essere entrambi in C# o entrambi in Java.
- Inviando un file ad Web Service con la SendFile e scaricandoli con la ReceiveFile, è possibile realizzare un contenitore di file condiviso tra tutte le applicazioni che utilizzano il Web Service, centralizzando i documenti e mantenendone un'unica copia.
- A partire dalla versione 20.5 la funzione restituisce NULL se l'operazione non è stata autorizzata dal web service tramite l'evento OnFileOperation.
Ultima modifica: 23/03/2021 / Validità: da 6.7.2950