declare l_id rte_images.id%type; begin /* * アップロードされた画像は:bodyにバイナリ・データとして保持されている。 * :content_typeはORDSが設定してくれている。 * :current_userはAPEXセッションによる保護をかけた場合、APP_USERになる。 */ insert into rte_images(content_type, image, created_by, created) values(:content_type, :body, :current_user, sysdate) returning id into l_id; :status_code := 201; /* * アップロードに成功した場合は、urlとしてダウンロードするリンクをJSON形式で返す。 * ex: * { * "url": "https://hostname/ords/apexdev/rteditor/image/322343253253" * } */ apex_json.open_object; apex_json.write( p_name => 'url', p_value => owa_util.get_cgi_env('REQUEST_PROTOCOL') || '://' || owa_util.get_cgi_env('SERVER_NAME') || owa_util.get_cgi_env('SCRIPT_NAME') || owa_util.get_cgi_env('PATH_INFO') || '/' || l_id ); apex_json.close_object; exception when others then /* エラーを返す。 * { * "error": { * "message": "Something wrong!" * } * } */ apex_json.open_object; apex_json.open_object('error'); apex_json.write('message', 'Something wrong!'); apex_json.close_object; apex_json.close_object; end;