From: <ar...@us...> - 2012-10-24 19:34:13
|
Revision: 43665 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=43665&view=rev Author: arildb Date: 2012-10-24 19:34:07 +0000 (Wed, 24 Oct 2012) Log Message: ----------- [bp/r43615,r43616,r43622] [FIX] tiki-batch_upload.php can now handle large files, e.g CD images. [MOD] FileMetadata will no longer load the file contents when a file path is specified. Doing so will break normal PHP memory limits for large files, e.g. CD/DVD images. Determine filesize directly from the filesystem when a path is specified. The content attribute is set to private to avoid clients using FileMetadata as a file loader [ENH] Make batch uploading and large file integration more visible. [ENH] Make a note about file directory being the recommended storage, when batch upload is active. Revision Links: -------------- http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=43615&view=rev http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=43616&view=rev http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=43622&view=rev Modified Paths: -------------- branches/10.x/lib/metadata/metadatalib.php branches/10.x/lib/prefs/feature.php branches/10.x/templates/admin/include_fgal.tpl Modified: branches/10.x/lib/metadata/metadatalib.php =================================================================== --- branches/10.x/lib/metadata/metadatalib.php 2012-10-24 18:58:35 UTC (rev 43664) +++ branches/10.x/lib/metadata/metadatalib.php 2012-10-24 19:34:07 UTC (rev 43665) @@ -18,7 +18,8 @@ class FileMetadata { public $currname = null; //working file path used to access file, may not be the same as embedded in file metadata - public $content = null; //file content + private $content = null; //file content. Set private to avoid having clients using metadata to access the file content + public $filesize = 0; //file size in bytes public $basicraw = null; //for basic file information public $basicinfo = null; //processed basic file information public $typemeta = null; //array used to store metadata beyond generic file data @@ -51,16 +52,22 @@ $this->error = 'The file is empty'; } else { $this->content = $file; + $this->filesize = function_exists('mb_strlen') ? mb_strlen($this->content, '8bit') : strlen($this->content); $this->currname = $temppath; } } else { //when $file is a path if (is_readable($file)) { $this->currname = $file; - $this->content = file_get_contents($file); + + // Do not load the file content. The size may be excessive, e.g. for video images + // The filesize can be determined directly + $this->content = null; // file_get_contents($file); + + $this->filesize = @filesize($file);; $temppath = $file; $leavelink = true; - if (empty($this->content)) { + if ($this->filesize <= 0) { $this->error = 'The file is empty'; } //if not readable, see if it's an external file @@ -74,6 +81,7 @@ } else { $this->currname = $file; $this->content = $externalinfo['data']; + $this->filesize = function_exists('mb_strlen') ? mb_strlen($this->content, '8bit') : strlen($this->content); //set type here for external files $this->type = $externalinfo['type']; } @@ -84,8 +92,7 @@ } //set basic info - $this->basicraw['size'] = function_exists('mb_strlen') ? mb_strlen($this->content, '8bit') - : strlen($this->content); + $this->basicraw['size'] = $this->filesize; if (class_exists('finfo') && is_readable($temppath)) { $finfo = new finfo(FILEINFO_MIME); $type_charset = $finfo->file($temppath); Modified: branches/10.x/lib/prefs/feature.php =================================================================== --- branches/10.x/lib/prefs/feature.php 2012-10-24 18:58:35 UTC (rev 43664) +++ branches/10.x/lib/prefs/feature.php 2012-10-24 19:34:07 UTC (rev 43665) @@ -1498,6 +1498,8 @@ ), 'feature_file_galleries_batch' => array( 'name' => tra('Batch uploading'), + 'description' => tra('Direct import of local files into a File Gallery. Can handle large files. User can upload file via FTP to target folder'), + 'hint' => tra('Use batch uploading to integrate large files into File Galleries'), 'type' => 'flag', 'help' => 'File+Gallery+Config', 'default' => 'n', Modified: branches/10.x/templates/admin/include_fgal.tpl =================================================================== --- branches/10.x/templates/admin/include_fgal.tpl 2012-10-24 18:58:35 UTC (rev 43664) +++ branches/10.x/templates/admin/include_fgal.tpl 2012-10-24 19:34:07 UTC (rev 43665) @@ -93,6 +93,10 @@ {preference name='fgal_allow_duplicates'} {preference name='feature_file_galleries_batch'} <div class="adminoptionboxchild" id="feature_file_galleries_batch_childcontainer"> + {remarksbox title="Note"} + {tr}You are highly recommended to use a file directory as the File Gallery storage, when using this feature{/tr} + {/remarksbox} + <br/> {preference name='fgal_batch_dir'} </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |