diff options
author | redmatrix <redmatrix@redmatrix.me> | 2015-10-12 23:36:26 -0700 |
---|---|---|
committer | redmatrix <redmatrix@redmatrix.me> | 2015-10-12 23:36:26 -0700 |
commit | 73dad85867b1d55a7da7fea99c90c6364b85b399 (patch) | |
tree | e546534b6e4bb072f9b799ae25433a9c7c5a2aef | |
parent | 3545626950a03f662a16ff3c1b589f2901c9948e (diff) | |
download | volse-hubzilla-73dad85867b1d55a7da7fea99c90c6364b85b399.tar.gz volse-hubzilla-73dad85867b1d55a7da7fea99c90c6364b85b399.tar.bz2 volse-hubzilla-73dad85867b1d55a7da7fea99c90c6364b85b399.zip |
file detail api call (will not work for huge files)
-rw-r--r-- | include/api.php | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/api.php b/include/api.php index 8d50e8eea..863c7a463 100644 --- a/include/api.php +++ b/include/api.php @@ -627,6 +627,30 @@ require_once('include/attach.php'); api_register_func('api/red/files','api_attach_list', true); + function api_file_detail(&$a,$type) { + if (api_user()===false) return false; + if(! $_REQUEST['file_id']) return false; + $r = q("select * from attach where uid = %d and hash = '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['file_id']) + ); + if($r) { + $data = dbunescbin($r[0]['data']); + if($r[0]['flags'] & ATTACH_FLAG_DIR) + $r[0]['is_dir'] = '1'; + if($r[0]['flags'] & ATTACH_FLAG_OS) + $r[0]['data'] = base64_encode(file_get_contents(dbunescbin($r[0]['data']))); + else + $r[0]['data'] = base64_encode(dbunescbin($r[0]['data'])); + + $ret = array('attach' => $r[0]); + json_return_and_die($ret); + } + killme(); + } + + api_register_func('api/red/file', 'api_file_detail', true); + function api_albums(&$a,$type) { json_return_and_die(photos_albums_list($a->get_channel(),$a->get_observer())); |