diff options
author | zotlabs <mike@macgirvin.com> | 2017-12-03 17:22:18 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-12-03 17:22:18 -0800 |
commit | ba547c22571d90bc8757e45643463d53d9cae2e6 (patch) | |
tree | e08de6b81f1e09378c05b095d6d9fd3d6eec0073 /Zotlabs/Module | |
parent | d5763ba476290fca6083c7b415a4ae4d177919cf (diff) | |
download | volse-hubzilla-ba547c22571d90bc8757e45643463d53d9cae2e6.tar.gz volse-hubzilla-ba547c22571d90bc8757e45643463d53d9cae2e6.tar.bz2 volse-hubzilla-ba547c22571d90bc8757e45643463d53d9cae2e6.zip |
chunked uploads for photos page
Diffstat (limited to 'Zotlabs/Module')
-rw-r--r-- | Zotlabs/Module/Photos.php | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php index caef45d98..279c393aa 100644 --- a/Zotlabs/Module/Photos.php +++ b/Zotlabs/Module/Photos.php @@ -465,6 +465,51 @@ class Photos extends \Zotlabs\Web\Controller { $_REQUEST['group_deny'] = expand_acl($channel['channel_deny_gid']); } + + $matches = []; + $partial = false; + + + + if(array_key_exists('HTTP_CONTENT_RANGE',$_SERVER)) { + $pm = preg_match('/bytes (\d*)\-(\d*)\/(\d*)/',$_SERVER['HTTP_CONTENT_RANGE'],$matches); + if($pm) { + logger('Content-Range: ' . print_r($matches,true)); + $partial = true; + } + } + + if($partial) { + $x = save_chunk($channel,$matches[1],$matches[2],$matches[3]); + + if($x['partial']) { + header('Range: bytes=0-' . (($x['length']) ? $x['length'] - 1 : 0)); + json_return_and_die($result); + } + else { + header('Range: bytes=0-' . (($x['size']) ? $x['size'] - 1 : 0)); + + $_FILES['userfile'] = [ + 'name' => $x['name'], + 'type' => $x['type'], + 'tmp_name' => $x['tmp_name'], + 'error' => $x['error'], + 'size' => $x['size'] + ]; + } + } + else { + if(! array_key_exists('userfile',$_FILES)) { + $_FILES['userfile'] = [ + 'name' => $_FILES['files']['name'], + 'type' => $_FILES['files']['type'], + 'tmp_name' => $_FILES['files']['tmp_name'], + 'error' => $_FILES['files']['error'], + 'size' => $_FILES['files']['size'] + ]; + } + } + $r = attach_store($channel,get_observer_hash(), '', $_REQUEST); if(! $r['success']) { @@ -557,8 +602,11 @@ class Photos extends \Zotlabs\Web\Controller { nav_set_selected('Photos'); - $o = ""; - + $o = '<script src="library/blueimp_upload/js/vendor/jquery.ui.widget.js"></script> + <script src="library/blueimp_upload/js/jquery.iframe-transport.js"></script> + <script src="library/blueimp_upload/js/jquery.fileupload.js"></script>'; + + $o .= "<script> var profile_uid = " . \App::$profile['profile_uid'] . "; var netargs = '?f='; var profile_page = " . \App::$pager['page'] . "; </script>\r\n"; |