Subir un archivo
Para utilizar el componente Stratus en el modo de Early Access, envíanos un correo electrónico a support@zohocatalyst.com.
Puedes subir un archivo a una carpeta existente en File Store. Después de que el archivo se suba a la carpeta, se generará un ID de archivo único para él. Puedes subir una imagen, documento de texto, CSV o cualquier tipo de archivo que necesites de hasta 100MB de tamaño.
Puedes subir el archivo de cualquiera de las siguientes formas, como se describe a continuación. La <FOLDER_INSTANCE> utilizada en las secciones de código de todos los métodos a continuación es la instancia definida en la página de instancia de carpeta. Esto hará referencia a la carpeta en la que se debe subir el archivo.
Mediante Delegate
Puedes subir el archivo a la carpeta de la instancia de carpeta dada mediante un delegate. Esto se puede hacer de dos formas:
i. Pasando la ruta del archivo
Puedes pasar el ID de referencia del archivo y la ruta del archivo junto con el objeto del método delegate como argumentos al método upload():
<FOLDER_INSTANCE>.upload( fileRefId : String, filePath : URL, fileUploadDelegate : ZCatalystFileUploadDelegate )
Parámetros:
-
fileRefId: Un ID de referencia único para identificar una tarea de subida específica. Este se devuelve en el método Delegate después de que la tarea se complete exitosamente.
-
filePath: La ruta del archivo a subir en el sistema local.
-
fileUploadDelegate: Una instancia del tipo ZCatalystFileUploadDelegate
A continuación se muestra un fragmento de código de ejemplo:
func progress(fileRefId: String, session: URLSession, sessionTask: URLSessionTask, progressPercentage: Double, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) {
print("The percentage of file upload is \(progressPercentage)")
}
func didFinish(fileRefId: String, fileDetails: ZCatalystFile) {
print("The file with reference id " + fileRefId + " is successfully uploaded.")
}
func didFail(fileRefId: String, with error: ZCatalystError?) {
print("The file with reference id " + fileRefId + " upload has been failed due to \(ZCatalystError.self)")
}
}
let filePath = self.testBundle?.path( forResource : "companylogo", ofType : "jpeg" ) //Reemplazar con el nombre del archivo
let url = URL( fileURLWithPath : filePath! )
ZCatalystApp.shared.getFileStoreInstance().getFolderInstance( id : 2823000000006544 ).upload( fileRefId : fileRefId, filePath : url, fileUploadDelegate : self ) //Reemplaza esto con tu ID de carpeta
ii. Pasando los datos del archivo
Puedes pasar los datos del archivo junto con el objeto del método delegate como argumentos al método upload():
<FOLDER_INSTANCE>.upload( fileRefId : String, fileName : String, fileData : Data, fileUploadDelegate : ZCatalystFileUploadDelegate )
Parámetros:
-
fileRefId: Un ID de referencia único para identificar una tarea de subida específica. Este se devuelve en el método Delegate después de que la tarea se complete exitosamente.
-
fileName: El nombre del archivo a subir.
-
fileData: El contenido del archivo del tipo Data
-
fileUploadDelegate: Una instancia del tipo ZCatalystFileUploadDelegate
A continuación se muestra un fragmento de código de ejemplo:
func progress(fileRefId: String, session: URLSession, sessionTask: URLSessionTask, progressPercentage: Double, totalBytesSent: Int64, totalBytesExpectedToSend: Int64)
{
print("The percentage of file upload is \(progressPercentage)")
}
func didFinish(fileRefId: String, fileDetails: ZCatalystFile)
{
print("The file with reference id " + fileRefId + " is successfully uploaded.")
}
func didFail(fileRefId: String, with error: ZCatalystError?)
{
print("The file with reference id " + fileRefId + " upload has been failed due to \(ZCatalystError.self)")
}
}
if let data = image?.pngData()
ZCatalystApp.shared.getFileStoreInstance().getFolderInstance( id : 105000000121098 ).upload( fileRefId : "1234567", fileName : url.lastPathComponent, fileData: data, fileUploadDelegate : self ) //Reemplazar con el ID de referencia del archivo
Mediante Completion Handler
Puedes subir el archivo a la carpeta de la instancia de carpeta dada mediante un completion handler. Esto se puede hacer de dos formas:
i. Pasando la ruta del archivo
Puedes pasar la ruta del archivo junto con el completion handler como argumentos al método upload():
<FOLDER_INSTANCE>.upload( filePath : URL, completion : @escaping ( Result< ZCatalystFile, ZCatalystError > ) -> Void )
Parámetros:
-
filePath: La ruta del archivo a subir en el sistema local.
-
completion: Si la operación es exitosa, el bloque de completion devolverá los detalles del archivo subido. De lo contrario, devolverá un error.
A continuación se muestra un fragmento de código de ejemplo:
let filePath = self.testBundle?.path( forResource : "document", ofType : "jpeg" ) //Reemplazar con el nombre del archivo
let url = URL( fileURLWithPath : filePath! )
ZCatalystApp.shared.getFileStoreInstance().getFolderInstance( id : 105000000121098 ).upload( filePath : url) { ( fileResult ) in
//Reemplaza esto con tu ID de carpeta
switch fileResult{
case .success (let file) :
print ("Image has been successfully uploaded and it's id is " + file.id)
case .error(let error) :
print( "Error occurred >>> \( error )" )
}
}
ii. Pasando los datos del archivo
Puedes pasar los datos del archivo junto con el completion handler como argumentos al método upload():
<FOLDER_INSTANCE>.upload( fileName : String, fileData : Data, completion: @escaping (Result<ZCatalystFile, ZCatalystError>) -> Void )
Parámetros:
-
fileName: El nombre del archivo a subir.
-
fileData: El contenido del archivo del tipo Data.
-
completion: Si la operación es exitosa, el bloque de completion devolverá los detalles del archivo subido. De lo contrario, devolverá un error.
A continuación se muestra un fragmento de código de ejemplo:
let image = UIImage ( named : "document" )
//reemplaza el nombre de tu archivo aquí
if let data = image?.pngData(){
ZCatalystApp.shared.getFileStoreInstance().getFolderInstance(id: 105000000121098).upload(fileName: "document", fileData: data, fileRefId : "123456789983") { (result) in
//reemplaza el nombre de tu archivo e ID de referencia aquí
switch result{
case .success (let file) :
print ("Image has been successfully uploaded and it's id is \(file.id)")
case .error(let error) :
print( "Error occurred >>> \( error )" )
}
}
}
Última actualización 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us