From 60a5e489791a557527b3301f3fcab99709b0ec4c Mon Sep 17 00:00:00 2001 From: colymba Date: Tue, 26 Mar 2013 10:48:12 +0200 Subject: [PATCH] add max upload file size config Bulk upload maximum file size can now be set through setConfig('maxFileSize', Xbytes ) --- README.md | 3 ++- code/GridFieldBulkImageUpload.php | 8 ++++++++ code/GridFieldBulkImageUpload_Request.php | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f32bad..e87b79a 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,8 @@ The available configuration options are: * 'fieldsNameBlacklist' : array of string referencing the names of fields that wont be available for editing * 'folderName' : name of the folder where the images should be uploaded * 'sequentialUploads' : boolean, if true files will be uploaded one by one - +* 'maxFileSize' : integer, maximum upload file size in bytes + Each option can be set through the component's method setConfig( $reference, $value ) In addition, some configuration option can be set more specifically via individual methods: * addFieldNameToBlacklist( $fieldName ) diff --git a/code/GridFieldBulkImageUpload.php b/code/GridFieldBulkImageUpload.php index b1f49dc..01abf1c 100644 --- a/code/GridFieldBulkImageUpload.php +++ b/code/GridFieldBulkImageUpload.php @@ -23,6 +23,7 @@ class GridFieldBulkImageUpload implements GridField_HTMLProvider, GridField_URLH 'fieldsClassBlacklist' => array(), 'fieldsNameBlacklist' => array(), 'folderName' => 'bulkUpload', + 'maxFileSize' => null, 'sequentialUploads' => false ); @@ -68,6 +69,13 @@ class GridFieldBulkImageUpload implements GridField_HTMLProvider, GridField_URLH { $value = array_unique( array_merge($value, $this->forbiddenFieldsClasses) ); } + + //makes sure maxFileSize is INT + if ( $reference == 'maxFileSize' && !is_int($value) ) + { + user_warning("maxFileSize should be an Integer. Setting it to Auto.", E_USER_ERROR); + $value = null; + } //sequentialUploads true/false if ( $reference == 'sequentialUploads' && !is_bool($value) ) diff --git a/code/GridFieldBulkImageUpload_Request.php b/code/GridFieldBulkImageUpload_Request.php index 371bbab..20af9ae 100644 --- a/code/GridFieldBulkImageUpload_Request.php +++ b/code/GridFieldBulkImageUpload_Request.php @@ -219,6 +219,11 @@ class GridFieldBulkImageUpload_Request extends RequestHandler { $uploadField->setConfig('downloadTemplateName','GridFieldBulkImageUpload_downloadtemplate'); $uploadField->setConfig('sequentialUploads', $this->component->getConfig('sequentialUploads')); + $maxFileSize = $this->component->getConfig('maxFileSize'); + if ( $maxFileSize !== null ) + { + $uploadField->getValidator()->setAllowedMaxFileSize( $maxFileSize ); + } $uploadField->setConfig('url', $this->Link('upload'));