diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/api.php | 7 | ||||
-rw-r--r-- | include/attach.php | 33 |
2 files changed, 33 insertions, 7 deletions
diff --git a/include/api.php b/include/api.php index b8e0582a6..d0449763b 100644 --- a/include/api.php +++ b/include/api.php @@ -622,7 +622,7 @@ require_once('include/attach.php'); function api_attach_list(&$a,$type) { logger('api_user: ' . api_user()); - json_return_and_die(attach_list_files(api_user(),get_observer_hash())); + json_return_and_die(attach_list_files(api_user(),get_observer_hash(),'','','','created asc')); } api_register_func('api/red/files','api_attach_list', true); @@ -635,8 +635,9 @@ require_once('include/attach.php'); dbesc($_REQUEST['file_id']) ); if($r) { - $data = dbunescbin($r[0]['data']); - if(intval($r[0]['os_storage'])) + if($r[0]['is_dir']) + $r[0]['data'] = ''; + elseif(intval($r[0]['os_storage'])) $r[0]['data'] = base64_encode(file_get_contents(dbunescbin($r[0]['data']))); else $r[0]['data'] = base64_encode(dbunescbin($r[0]['data'])); diff --git a/include/attach.php b/include/attach.php index a28a1a8ab..0ed1690ec 100644 --- a/include/attach.php +++ b/include/attach.php @@ -455,9 +455,25 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $src = $arr['src']; $filename = $arr['filename']; $filesize = @filesize($src); + $hash = $arr['resource_id']; + + if(array_key_exists('hash',$arr)) + $hash = $arr['hash']; + if(array_key_exists('type',$arr)) + $type = $arr['type']; + if($arr['preserve_original']) $remove_when_processed = false; + + // if importing a directory, just do it now and go home - we're done. + + if(array_key_exists('is_dir',$arr) && intval($arr['is_dir'])) { + $x = attach_mkdir($channel,$observer_hash,$arr); + if($x['message']) + logger('import_directory: ' . $x['message']); + return; + } } elseif($options !== 'update') { $f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => ''); @@ -536,10 +552,20 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $pathname = ''; if($is_photo) { - if($newalbum) + if($newalbum) { $pathname = filepath_macro($newalbum); - else + } + elseif(array_key_exists('folder',$arr)) { + $x = q("select filename from attach where hash = '%s' and uid = %d limit 1", + dbesc($arr['folder']), + intval($channel['channel_id']) + ); + if($x) + $pathname = $x[0]['filename']; + } + else { $pathname = filepath_macro($album); + } } else { $pathname = filepath_macro($upload_path); @@ -569,7 +595,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { } } else { - $folder_hash = ''; + $folder_hash = ((array_key_exists('folder',$args)) ? $args['folder'] : ''); } if((! $options) || ($options === 'import')) { @@ -968,7 +994,6 @@ function attach_mkdir($channel, $observer_hash, $arr = null) { intval($channel['channel_id']), dbesc($lfile) ); - if(! $r) { logger('attach_mkdir: hash ' . $lfile . ' not found in ' . $lpath); $ret['message'] = t('Path not found.'); |