- Issue created by @ratanasdiabolo
- Issue was unassigned.
- 🇫🇷France ratanasdiabolo
Good evening,
Still no one with this type of problem?
The module does not work at all. If I put a max value of file, I have an error and if I don't put rioen, it does not take a file greater than the value of php.ini, that is to say 128 MB.
I don't understand… - 🇮🇳India dineshkumarbollu
Hi @ratanasdiabolo
Can you add steps to reproduce the issue, I will check the issue if you provide.
The reason might be upload size in code is taking as string '400' instead of int 400.This is the method where file size is passing, can you provide steps to reproduce i will debug the issue.Thnkas
public static function managedFileProcess($element, FormStateInterface $form_state, $form) { // Add our resup element. $form_object = $form_state->getFormObject(); $max_files = $element['#file_resup_max_files']; $upload_validators = $element['#upload_validators']; $description = [ '#theme' => 'file_upload_help', '#description' => '', '#upload_validators' => $element['#upload_validators'], '#cardinality' => $element['#cardinality'], ]; $element['resup'] = [ '#type' => 'hidden', '#value_callback' => static::class . '::fileResupValue', '#field_name' => $element['#field_name'], '#upload_location' => $element['#upload_location'], '#file_resup_upload_validators' => $upload_validators, '#attributes' => [ 'class' => ['file-resup'], 'data-entity-type-id' => $element['#file_resup_entity_type_id'], 'data-bundle' => $element['#file_resup_bundle'], 'data-form-type' => $element['#form_type'], 'data-operation' => method_exists($form_object, 'getOperation') ? $form_object->getOperation() : 'default', 'data-upload-name' => $element['upload']['#multiple'] ? $element['upload']['#name'] . '[]' : $element['upload']['#name'], 'data-upload-button-name' => $element['upload_button']['#name'], 'data-max-filesize' => $upload_validators['file_validate_size'][0] ?? $upload_validators['FileSizeLimit']['fileLimit'], 'data-description' => \Drupal::service('renderer')->renderRoot($description)->__toString(), 'data-parents' => Json::encode($element['#array_parents']), 'data-url' => Url::fromRoute('file_resup.upload')->toString(), 'data-drop-message' => $max_files > -1 ? (new PluralTranslatableMarkup($max_files, 'Drop a file here or click <em>Browse</em> below.', 'Drop up to @count files here or click <em>Browse</em> below.')) : t('Drop files here or click <em>Browse</em> below.'), ], '#prefix' => '<div class="file-resup-wrapper">', '#suffix' => '</div>', '#attached' => [ 'library' => ['file_resup/file_resup'], 'drupalSettings' => [ 'file_resup' => [ 'chunk_size' => file_resup_chunksize(), ], ], ], ];
- 🇫🇷France ratanasdiabolo
Good morning,
Thank you very much for watching.
In fact, I normally install the module then when I drop files greater than the php.ini limit, the site displays an error message.
When I put a transfer value of 600 MB for example in the parameters of my field, I get an error like this:
---------------------------------
The website encountered an unexpected error. Please try again later.TypeError: abs(): Argument #1 ($num) must be of type int|float, string given in abs() (line 137 of core/includes/common.inc).
format_size() (Line: 157)
template_preprocess_file_upload_help()
call_user_func_array() (Line: 285)
Drupal\Core\Theme\ThemeManager->render() (Line: 433)
Drupal\Core\Render\Renderer->doRender() (Line: 204)
Drupal\Core\Render\Renderer->render() (Line: 148)
Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 149)
Drupal\Core\Render\Renderer->renderRoot() (Line: 70)
Drupal\file_resup\Form\FileFormAlterBase::managedFileProcess() (Line: 23)
Drupal\file_resup\Form\FileWidgetFormAlter::managedFileProcess()
call_user_func_array() (Line: 1012)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 1075)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 1075)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 1075)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 579)
Drupal\Core\Form\FormBuilder->processForm() (Line: 325)
Drupal\Core\Form\FormBuilder->buildForm() (Line: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 74)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 58)
Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 686)
Drupal\Core\DrupalKernel->handle() (Line: 19)---------------------------------
I am under :
Drupal 10.0.9
PHP Version 8.1.27
Database Version 10.6.17-MariaDB
Memory ceiling of PHP 2048MI also have a version under:
Drupal 10.1.8
PHP Version 8.2.10
Database
Version 5.7.42-log - MySQL system, Percona Server, or equivalent
Memory ceiling of PHP 512M
But it's the same. It does not work.Thank you in advance for your help.
Stephen - 🇫🇷France ratanasdiabolo
in the watchdog, I have this:
TypeError: abs(): Argument #1 ($num) must be of type int|float, string given in abs() (line 137 of /home/njbo5967/gihpnormandie2023/web/core/includes/common.inc). - 🇺🇸United States tim bozeman
Tim Bozeman → made their first commit to this issue’s fork.
- Status changed to Needs review
8 months ago 11:46pm 11 April 2024 - 🇺🇸United States tim bozeman
Thank you for the bug report!
At some point core changed their file validator names from things like
file_validate_size
to['FileSizeLimit']['fileLimit']
. We tried to support both the old and new validator names, but evidently it wasn't working for the new ones. Let's just remove the old validator names and move on. I think there's been enough time for most people to update their sites. I'll make this a 2.1.0 version when it is released since it could be a breaking change. Well I guess you could say the current version is broken... hmm 🤔¯\_(ツ)_/¯
@ratanasdiabolo does this work for you?
- 🇫🇷France ratanasdiabolo
Thank you, I will test all this and I will come back to hear from you if it works ;)
- 🇫🇷France ratanasdiabolo
I'm sorry I have the same error message...
------------------------------------------------
Le site Web a rencontré une erreur inattendue. Veuillez essayer de nouveau plus tard.
TypeError: abs(): Argument #1 ($num) must be of type int|float, string given in abs() (line 137 of core/includes/common.inc).
format_size() (Line: 156)
template_preprocess_file_upload_help()
call_user_func_array() (Line: 285)
Drupal\Core\Theme\ThemeManager->render() (Line: 445)
Drupal\Core\Render\Renderer->doRender() (Line: 204)
Drupal\Core\Render\Renderer->render() (Line: 148)
Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 592)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 149)
Drupal\Core\Render\Renderer->renderRoot() (Line: 70)
Drupal\file_resup\Form\FileFormAlterBase::managedFileProcess() (Line: 23)
Drupal\file_resup\Form\FileWidgetFormAlter::managedFileProcess()
call_user_func_array() (Line: 1012)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 1075)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 1075)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 1075)
Drupal\Core\Form\FormBuilder->doBuildForm() (Line: 579)
Drupal\Core\Form\FormBuilder->processForm() (Line: 325)
Drupal\Core\Form\FormBuilder->buildForm() (Line: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 592)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 181)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 58)
Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 704)
Drupal\Core\DrupalKernel->handle() (Line: 19)Merci d'avance.
Stéphen - 🇺🇸United States tim bozeman
Hmm, that's strange. Did you try re-saving the file size limits?
- First commit to issue fork.
- 🇫🇷France tostinni
I think the problem @ratanasdiabolo faced is that he was trying to put a value like "200 MB" but right now
max_upload_size
will only accept integer.I added a commit to this MR to let user enter those kind of values and add a description too (same as core file max upload size)
The error message we had was slightly different but I think it's the same cause.
TypeError : Drupal\Core\StringTranslation\ByteSizeMarkup::create(): Argument #1 ($size) must be of type int|float, string given, called in /opt/www/drupal/web/core/modules/file/file.module on line 1245 dans Drupal\Core\StringTranslation\ByteSizeMarkup::create() (ligne 28 de /opt/www/drupal/web/core/lib/Drupal/Core/StringTranslation/ByteSizeMarkup.php).
Btw @Tim Bozeman what is the reason between creating a new setting
max_upload_size
instead of reusingmax_filesize
?
Checking it, it doesn't limit its value to PHPmax_upload_size
so you could already put a bigger value there although it wouldn't be applied without the override made by file_resup module.Should we kept only one field to avoid confusion ?
@ratanasdiabolo can you try with this MR ?
You can apply it to yourcomposer.json
to the patches section → :"patches": { "drupal/file_resup": { "[3418177-MR11] Fix Error message - file size": "https://git.drupalcode.org/project/file_resup/-/merge_requests/11.diff" } },
- 🇺🇸United States tim bozeman
Thank you very much tostinni! That's a great question and I bet you're right and there are some simplifications to be made there. My thinking while porting it from D7 was that that duplication was present in the D7 version too. I wasn't certain why there was two, but figured there may have been a reason for having both. All I knew was that the D7 version has been battle tested and proven and I tried to change as little as possible in how it functioned.
- First commit to issue fork.
Trying this with a file that's approximately 14GB large, another issues surfaced. The
filesize
column is of typeint
and may be too small for really large files, see attached screenshot. I pushed a change containing an update hook which will change the filesize basefield into a bigbigint
DB column to tackle this.- 🇺🇸United States tim bozeman
Thanks sebastian! How about when people just install file_resup? I think we need to set
bigint
on the field too. Also, there's a commented out update hook in the last commit 😅 - 🇳🇱Netherlands ricovandevin
Attaching patch file created from MR 11 for easier and safer Composer workflow.
- 🇳🇱Netherlands ricovandevin
I did not review the code of the MR but the changes seem to resolve the issue with file size limit.
-
tim bozeman →
committed 0aaae465 on 2.0.x
Issue #3418177 by s_leu, tim bozeman, ricovandevin, tostinni,...
-
tim bozeman →
committed 0aaae465 on 2.0.x
- 🇺🇸United States tim bozeman
We've been using this for a while too. I think it's good to go! Thanks everybody!
- Status changed to Fixed
2 months ago 2:14pm 21 October 2024 Automatically closed - issue fixed for 2 weeks with no activity.