Is it possible with a Stored Procedure to upload a file? I want to replace this by a Stored Procedure function:curl -X 'POST' \ 'https://dev.somesite/api-external/stock/import-file' \ -H 'accept: application/json' \ -H 'authorization: Basic dHN....==' \ -H 'Content-Type: multipart/form-data' \ -F 'File=@myfile.csv;type=application/vnd.ms-excel' My Stored Procedure:ALTER PROCEDURE "DBA"."sp_tsd_catalogus_toc"(IN "file" NTEXT) result( "Attribute" long NVARCHAR,"Values" long NVARCHAR, instance INTEGER ) url 'https://dev.somesite.com/api-external/stock/import-file' type 'HTTP:POST' header 'accept:application/json\nauthorization: Basic dHNk...==\ncontent-Type:multipart/form-data' With this I got a 400 error. I think because the in parameter 'file' contains the content of the file. Is it possible to save a file at the serverside and post that filename in de SP? Anybody an idea? Tia Hans |
We upload documents in the database CREATE SERVICE rawUploadDocument TYPE 'raw' AUTHORIZATION OFF USER "USR" METHODS 'POST' AS CALL UploadDocument(HTTP_BODY()) In this procedure in the end we store the file on disc set l_FullFilename = 'c:\images\word\'\|| Description ||'.'|| Extension select xp_write_file(l_FullFilename,BASE64_DECODE(Image)) We use Json to send the image base 64 encoded {"extension": "docx" "Description": "Quote for customer xxxxxx" "Image": "....." -- Image Base64 encoded I hope this wil help |
I asked the API developer to modify there API to accept the content of the file, instead of a file upload. So the problem is 'solved', I can upload my data with SA17 now. |
I would generally use the "web client debug feature" (aka the -zoc database server option or via "CALL sa_server_option('WebClientLogging', 'On')") to check the request sent to the web server.