diff options
author | zotlabs <mike@macgirvin.com> | 2017-12-25 14:59:08 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-12-25 14:59:08 -0800 |
commit | 601706b7b5404df97a8e14eb2544d97aaea69f6d (patch) | |
tree | c4e54a30bf6e59a4b5d8ec2ab7728ba5122e1353 /include/attach.php | |
parent | 89fbb86c7b29f47d39b05568a2dc5a1055708cb3 (diff) | |
download | volse-hubzilla-601706b7b5404df97a8e14eb2544d97aaea69f6d.tar.gz volse-hubzilla-601706b7b5404df97a8e14eb2544d97aaea69f6d.tar.bz2 volse-hubzilla-601706b7b5404df97a8e14eb2544d97aaea69f6d.zip |
cannot use file_get/put_contents in attach_store, must use pipe_streams
Diffstat (limited to 'include/attach.php')
-rw-r--r-- | include/attach.php | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/include/attach.php b/include/attach.php index e94454905..39269eb03 100644 --- a/include/attach.php +++ b/include/attach.php @@ -550,6 +550,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $type = $f['type']; } else { if(! x($_FILES,'userfile')) { + logger('No source file'); $ret['message'] = t('No source file.'); return $ret; } @@ -590,6 +591,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { intval($channel_id) ); if(! $x) { + logger('update file source not found'); $ret['message'] = t('Cannot locate file to revise/update'); return $ret; } @@ -731,6 +733,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $maxfilesize = get_config('system','maxfilesize'); if(($maxfilesize) && ($filesize > $maxfilesize)) { + logger('quota_exceeded'); $ret['message'] = sprintf( t('File exceeds size limit of %d'), $maxfilesize); if($remove_when_processed) @unlink($src); @@ -751,6 +754,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { intval($channel['channel_account_id']) ); if(($r) && (($r[0]['total'] + $filesize) > ($limit - $existing_size))) { + logger('service_class limit exceeded'); $ret['message'] = upgrade_message(true) . sprintf(t("You have reached your limit of %1$.0f Mbytes attachment storage."), $limit / 1024000); if($remove_when_processed) @unlink($src); @@ -783,8 +787,15 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $os_path = $os_relpath; $display_path = ltrim($pathname . '/' . $filename,'/'); - if($src) - @file_put_contents($os_basepath . $os_relpath,@file_get_contents($src)); + if($src) { + $istream = @fopen($src,'rb'); + $ostream = @fopen($os_basepath . $os_relpath,'wb'); + if($istream && $ostream) { + pipe_streams($istream,$ostream,65535); + fclose($istream); + fclose($ostream); + } + } if(array_key_exists('created', $arr)) $created = $arr['created']; |