# ivyforms/1.5/backend/src/ValueObjects/Field/FileUploadFieldAdvancedSettings.php

The Innovative Form Builder – IvyForms, version 1.5. 95 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/1.5/code/backend/src/ValueObjects/Field/FileUploadFieldAdvancedSettings.php
- Raw: https://pluginprobe.com/plugins/ivyforms/1.5/raw/backend/src/ValueObjects/Field/FileUploadFieldAdvancedSettings.php
- Modified: 2026-06-22T13:19:22+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/1.5/code/backend/src/ValueObjects/Field/FileUploadFieldAdvancedSettings.php#L10-L20`.

```php
<?php

/**
 * @copyright © Melograno Venture Studio. All rights reserved.
 * @licence   See LICENCE.md for license details.
 */

declare(strict_types=1);

namespace IvyForms\ValueObjects\Field;

/**
 * File-upload-specific advanced field settings.
 */
final class FileUploadFieldAdvancedSettings
{
    /**
     * Max upload size per file (MB). 0 uses server maximum.
     */
    private int $maxFileSizeMb;

    /**
     * Where uploads are stored: ivyforms (uploads dir) or media_library.
     */
    private string $saveUploadsTo;

    /**
     * Allowed extensions without dot (e.g. png, jpg). Empty = all types.
     *
     * @var array<int, string>
     */
    private array $allowedFileExtensions;

    /**
     * @param array<int, string> $allowedFileExtensions
     */
    public function __construct(
        int $maxFileSizeMb = 0,
        string $saveUploadsTo = 'ivyforms',
        array $allowedFileExtensions = []
    ) {
        $this->maxFileSizeMb = $maxFileSizeMb;
        $this->saveUploadsTo = $saveUploadsTo;
        $this->allowedFileExtensions = $allowedFileExtensions;
    }

    public function getMaxFileSizeMb(): int
    {
        return $this->maxFileSizeMb;
    }

    public function setMaxFileSizeMb(int $maxFileSizeMb): void
    {
        $this->maxFileSizeMb = $maxFileSizeMb;
    }

    public function getSaveUploadsTo(): string
    {
        return $this->saveUploadsTo;
    }

    public function setSaveUploadsTo(string $saveUploadsTo): void
    {
        $this->saveUploadsTo = $saveUploadsTo;
    }

    /**
     * @return array<int, string>
     */
    public function getAllowedFileExtensions(): array
    {
        return $this->allowedFileExtensions;
    }

    /**
     * @param array<int, string> $allowedFileExtensions
     */
    public function setAllowedFileExtensions(array $allowedFileExtensions): void
    {
        $this->allowedFileExtensions = $allowedFileExtensions;
    }

    /**
     * @return array<string, int|string|array<int, string>>
     */
    public function toArray(): array
    {
        return [
            'maxFileSizeMb' => $this->getMaxFileSizeMb(),
            'saveUploadsTo' => $this->getSaveUploadsTo(),
            'allowedFileExtensions' => $this->getAllowedFileExtensions(),
        ];
    }
}

```
