From f8039a3a43ab41ef6d28da0416c4649188c46cd0 Mon Sep 17 00:00:00 2001 From: Alex Zaw Date: Wed, 25 Feb 2026 23:05:54 +0000 Subject: [PATCH] Update Function MISC_UPLOAD_FILE --- RESTAPI/Functions/MISC_UPLOAD_FILE.sql | 63 +++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/RESTAPI/Functions/MISC_UPLOAD_FILE.sql b/RESTAPI/Functions/MISC_UPLOAD_FILE.sql index a0336fe..6c8a462 100644 --- a/RESTAPI/Functions/MISC_UPLOAD_FILE.sql +++ b/RESTAPI/Functions/MISC_UPLOAD_FILE.sql @@ -1 +1,62 @@ -@@\@^@ % %@@@@Kmm@M@ %@M]@]@ %@M]@@@ %@@ %@Kmm@ %@@ %@@@ %@@@@ %@@@@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@Mk@k@]@k@ %@~@\@k@ %@~@\@k@ %@~@\@@@ %@ %@m@@M@@]@^@ %@m@@M@@@]@^@ %@@@M@@]@^@ %@@@@@ %@ %@ %m@M@ %}}@z@}}@@@k@}}@z@}@}@k@ %}ׁ}@z@@M@m@k@}}@]@k@}㖒}@z@@M@ %@k@}}@]@ %]@^@ %@^@ %@@K@@k@@M@m@M@@K@@]@@@M@@@]@]@ %@m@k@m@ %@ %m@M@ %@k@ %}[}@ %@M@ %@@M@@]@@}[Kׁ}@k@ %@@M@@@]@@}[K}@ %]@ %]@@^@ %@@~@m@M@@M@m@M@]@]@]@^@ %@m@@@ %@m@~@}}@@ %@m@~@}aa}@OO@@^@ %@@^@ %@mm@M@m@k@m@]@^@ %@ %m@M@ %}}@z@}}@@@k@}ׁ}@z@m@k@ %}㖒}@z@@ %]@^@ %@@^@ % %@@k@@@@ %@@@Kmm@ %@@@@@^@ % %@@@@ %@@@Kmm@ %@@^@ % % \ No newline at end of file +SET PATH *LIBL ; + +CREATE OR REPLACE FUNCTION RESTAPI.MISC_UPLOAD_FILE ( + "DATA" CLOB(2147483647) ) + RETURNS CLOB(32768) + LANGUAGE SQL + SPECIFIC RESTAPI.MISC_UPLOAD_FILE + NOT DETERMINISTIC + MODIFIES SQL DATA + CALLED ON NULL INPUT + SET OPTION ALWBLK = *ALLREAD , + ALWCPYDTA = *OPTIMIZE , + COMMIT = *NONE , + DECRESULT = (31, 31, 00) , + DYNDFTCOL = *NO , + DYNUSRPRF = *USER , + SRTSEQ = *HEX + BEGIN +DECLARE FILE_PATH VARCHAR ( 1056 ) ; +DECLARE FILE_BLOB BLOB ( 2 G ) ; +DECLARE TOKEN VARCHAR ( 128 ) ; +DECLARE EXIT HANDLER FOR SQLEXCEPTION +BEGIN +RETURN +JSON_OBJECT ( +'success' : 'false' FORMAT JSON , 'error' : 'upload failed' , +'filePath' : COALESCE ( FILE_PATH , '' ) , 'uploadToken' : COALESCE ( +TOKEN , '' ) +) ; +END ; +SELECT JT . FILEPATH , CAST ( BASE64_DECODE ( JT . FILE ) AS BLOB ( 2 G ) ) +INTO FILE_PATH , FILE_BLOB +FROM +JSON_TABLE ( +DATA , +'$' +COLUMNS ( +FILEPATH VARCHAR ( 1056 ) PATH '$.filePath' , +FILE CLOB ( 2 G ) PATH '$.file' +) +) JT ; +SET TOKEN = BASE64_ENCODE ( VARCHAR ( GENERATE_UNIQUE ( ) ) ) ; +IF FILE_PATH IS NULL +OR FILE_PATH = '' THEN +SET FILE_PATH = '/tmp/' || TOKEN ; +END IF ; +CALL IFS_WRITE_BINARY ( FILE_PATH , FILE_BLOB ) ; +RETURN +JSON_OBJECT ( +'success' : 'true' FORMAT JSON , 'filePath' : FILE_PATH , +'uploadToken' : TOKEN +) ; +END ; + +GRANT ALTER , EXECUTE +ON SPECIFIC FUNCTION RESTAPI.MISC_UPLOAD_FILE +TO AMAPICS WITH GRANT OPTION ; + +GRANT EXECUTE +ON SPECIFIC FUNCTION RESTAPI.MISC_UPLOAD_FILE +TO PUBLIC ; +