Updating data from the front end with Tabulizer File Uploader

Updating data from the front end with Tabulizer File Uploader

Let the person maintaining your spreadsheet replace it from a page on the site. You keep control of the destination, the data source and the Joomla administrator.

What it is for

A price list, a timetable or a set of monthly figures is displayed through a Tabulizer data source. Someone else prepares the file, but updating the table still means asking you to replace that file on the server.

Tabulizer File Uploader gives that person a front-end upload form. They sign in to the site, choose the new file and upload it. You decide who may upload, where the file goes, which formats are allowed and how large it may be.

The working arrangement is to create the data source once, point it at a file, then replace that file under the same name whenever its contents change. The articles and modules displaying the data source continue to use it.

The uploader is a separate extension with an administrator component and a companion site module. It saves files; it does not create data sources, choose rulesets or insert tables into articles. Those remain the site owner's setup work.

Step 1 - install the package for your Joomla version

Choose the Tabulizer File Uploader package matching your site's Joomla major version. There are separate packages for Joomla 3, 4, 5 and 6; the current Joomla 3 edition targets 3.9/3.10, and the Joomla 4 edition requires 4.4 or later.

Joomla version Where to install
Joomla 3 Extensions › Manage › Install
Joomla 4, 5 and 6 System › Install › Extensions

Use Upload Package File to install the ZIP. The package installs both the component and the module. The module starts unpublished, ready for you to choose its position and pages.

Then open Components › Tabulizer File Uploader and click Options. The screenshots below show the modern Joomla interface; Joomla 3 presents the same uploader settings in its own administrator layout.

Uploaded files are site-readable, like ordinary Tabulizer source files. Use this for data that may be published on the site, not confidential documents. Permission to use the form does not make the resulting files private.

Step 2 - decide who may upload

A signed-in site account is required. Ordinary users are denied initially, and there are two ways to authorise them:

Method What to configure
Allow a Joomla user group In Options › Permissions, select the intended group and set Upload data files to Allowed. Save, then check the calculated permission for that group.
Allow individual accounts In Options › Upload settings, enter their numeric IDs in Additional permitted user IDs, separated by commas, for example 42, 57.

Find the account's ID in Users › Manage, in the user list's ID column. Use the ID, not the display name. Save the component options after changing either method.

For one person, an existing Registered account plus an individual ID grant is often enough. For a team, a dedicated group makes it easier to maintain access. Only allow the whole Registered group if every registered site user should be able to upload.

The individual-ID list is an additional grant, independent of the group ACL. Leaving it blank makes ordinary users rely on the component's group permission. Super Users retain their normal authority. Neither upload method grants administrator login, component management or article-editing permission.

Step 3 - choose the destination and limits

Open the Upload settings tab. The default destination is Tabulizer's usual data folder:

templates/tabulizer/data

This path is relative to the Joomla installation root. If Joomla lives in a subfolder, the path starts inside that installation. A leading slash is still site-relative; it does not mean the root of the server's filesystem.

Joomla uploader Options on the Upload settings tab, showing Additional permitted user IDs, the templates/tabulizer/data destination, a 20 MB global ceiling and a 5 MB default limit.

Setting What it does
Destination folder Where uploads are saved. Missing permitted folders are created during an upload if the server allows it. Enter a site-relative data folder, not a URL or absolute server path.
Maximum for everyone (MB) The ceiling for all uploads, including users with individual rules. Initially 20.
Default user limit (MB) The usual limit unless a matching user or group rule changes it. Initially 5.
Replace existing files Enabled by default. A file with the same name in the same destination is replaced. Disable this to reject collisions instead.

A rule cannot exceed the global ceiling or the extension's fixed 100 MB ceiling. PHP and the web server may impose smaller limits; raising the component's setting does not raise those server limits.

Everyone uploading into a shared folder can replace a shared filename when replacement is enabled. Use separate folders when different people should maintain different files.

Step 4 - select file types

Allowed extensions initially contains csv,txt,tsv,xls,xlsx,json,xml. Remove formats you do not need. For a CSV-only workflow, enter csv.

The uploader checks the detected MIME type and file content too. Renaming another format to .csv does not make it acceptable. JSON and XML must be valid, and spreadsheet files have their own format checks.

Additional MIME restriction is optional. Leave it empty for the built-in checks, or enter a comma-separated list of detected MIME types to narrow them further. Normal CSV files can be detected as text/plain, so an unnecessarily narrow list can reject valid files.

Use a filename with one extension, such as monthly-sales.csv. The filename stem supports letters, numbers, spaces, hyphens and underscores. Rename sales.2026.csv to sales-2026.csv, and save CSV/text as UTF-8.

Different folders or limits for different people

In Options › User and group rules, click Add rule. Identify a person by User ID or Exact username, or leave both blank and select a group. Set a destination, a size limit, or both.

A Joomla user rule for the exact username data-editor, using a destination with user ID and username tokens and a 2 MB upload limit.

For example, give the username data-editor a 2 MB limit and this destination:

templates/tabulizer/data/{user_id}-{username}

For user 42, the result is templates/tabulizer/data/42-data-editor. The uploader substitutes the person uploading and converts names to safe folder names.

Token Example value
{user_id} 42
{username} data-editor
{group_id} 2, the matching group's numeric ID
{group_name} Registered, converted to a safe folder name

A group destination could be site-data-{group_id}/sources. Group matches include inherited membership. Group tokens use the group matched by a group rule; without one, they use the user's lowest authorised group ID. If exact group selection matters, make it explicit in a group rule.

The first matching user-ID or exact-username rule wins. If none matches, the first matching group rule wins; otherwise the defaults apply. Use Move up and Move down to change the order. A blank folder inherits the default folder, and a limit of 0 inherits the default user limit. Save the options.

Rules change destination and size; they do not grant upload access. Authorise the account or group separately. If both ID and username are filled in a rule, either can match, so keep them for the same account.

Step 5 - give users a page to upload from

For a dedicated upload page, create a menu item:

  1. Open Menus, choose the appropriate menu and add a new item.
  2. Give it a title, such as Update data.
  3. In Menu Item Type, select Tabulizer File Uploader and its upload-form layout.
  4. Choose the menu item's access level and publish it.

Set the menu item's access level to one the intended users can view, commonly Registered. Menu visibility and upload authorisation are separate: a person may be able to see the link but still lack permission to upload.

For a quick check, use Open upload page on the uploader component's dashboard. Its direct front-end route is:

index.php?option=com_tabulizeruploader
Joomla's administrator and front-end sessions are separate. Being signed in to /administrator does not prove that the upload page is signed in. Use the site's front-end login form when testing.

Or place the companion module on existing pages

The Tabulizer File Uploader site module displays the same form in a template position. It uses the component's permission, folder and limit settings; there is no second policy to configure.

Joomla version Where to manage the module
Joomla 3 Extensions › Modules, with the site client selected
Joomla 4, 5 and 6 Content › Site Modules, or the Site Modules link on the System dashboard
  1. Find the installed Tabulizer File Uploader module and open it.
  2. Choose a Position provided by your active site template.
  3. Set Status to Published.
  4. Under Menu Assignment, select the pages where it belongs. No pages displays nothing.
  5. Choose an appropriate Access level, leave module caching disabled and save.

The Tabulizer File Uploader module on a Joomla site, with a 1 MB user limit and a successful CSV upload at 100 percent.

This is the File Uploader module. The separate Tabulizer Data Source module displays a table; it does not accept replacement files.

Step 6 - connect the file to your data source

Choose a filename you intend to keep, such as monthly-sales.csv, and upload its first copy. Then open Components › Tabulizer › Data Sources and create or edit the file-based source that should read it.

Set the source's file path to the actual destination and filename. With the default folder:

templates/tabulizer/data/monthly-sales.csv

With the individual rule from our example:

templates/tabulizer/data/42-data-editor/monthly-sales.csv

Choose the source's parsing settings and ruleset as usual, and display the data source in an article or module. Later uploads must use that same folder and filename to update it. Uploading a differently named file does not redirect the data source to the new file.

The uploader's folder tokens are resolved when it saves a file. They do not automatically make a Tabulizer data source choose a different file for each visitor. Configure the source's actual path separately.

What the person updating the data does

  1. Sign in to the front end with an authorised Joomla account.
  2. Open the upload page, or a page displaying the uploader module.
  3. Drag one file onto the drop area, use Choose a data file, or click Browse using a text link.
  4. Click Upload file and wait for its success message.
  5. Open the page displaying the data and check the result.

The bar measures transfer progress. At 100%, the server may still be validating and saving; the success message confirms that processing has finished. Upload one file at a time.

Replacement has no undo or version archive. Keep the previous spreadsheet if you may need to restore it. Restore older data by uploading that previous file under the same name.

Appearance, notifications and refresh

Where Setting What to do with it
Appearance Upload heading and Submit button text Use wording suited to the task, such as “Update the monthly figures”. Blank values use translated defaults; custom text may also be a Joomla language-override constant.
Appearance Progress and button colour and Progress bar height (pixels) Choose a colour matching your site and a height between 4 and 40 pixels. The colour also applies to the upload button.
Upload settings Notify these email addresses Optionally enter recipients separated by commas, semicolons or new lines. Notifications for successful uploads use Joomla's configured mailer. Leaving it blank sends none.
Upload settings Refresh Tabulizer data-source caches Leave enabled to clear derived data-source caches after successful uploads when Tabulizer is active, including caches used by merged or chained sources. Source definitions are preserved.

English and German language files are included, and Joomla language overrides can customise the extension's text.

Clearing a data-source cache does not clear every Joomla page, template or CDN cache. Let those expire or refresh them through your caching tools. Keep token-bearing upload pages and modules out of full-page caches, and keep the uploader module's own caching disabled.

Checking upload history

Open Components › Tabulizer File Uploader to see Upload history. Search by filename or username; results are paginated in groups of 25.

Each record shows the date, user, file, destination, byte count, detected MIME type, replacement flag, upload status and notification result. Dates are recorded in UTC. Hover over the filename cell to see its SHA-256 checksum. The destination is useful for checking exactly how a folder rule resolved.

Replaced: Yes confirms that a previous file existed at that destination. Status: Success with Notification: Failed means the file was saved but the notification failed. A mail failure does not undo the file upload.

Rejected files are not listed as successful uploads. A pending record can indicate interrupted processing and needs an administrator to check the destination before retrying.

Common questions

I am logged in as an administrator, but the upload page asks me to sign in.

Sign in on the front end too. Joomla keeps the administrator and site sessions separate. Then check that the account has the component's Upload data files permission or an individual ID grant.

The menu link is visible, but the user cannot upload.

Menu access and upload permission are separate. Check Options › Permissions and Additional permitted user IDs. A destination rule does not grant access.

The module does not appear.

Check its Published status, template position, Access level and Menu Assignment. A module assigned to No pages is installed but invisible. Also make sure you selected the File Uploader module, not the Data Source module.

The upload succeeded, but the table has not changed.

Compare the history destination with the data source's path, including the resolved user folder and filename. Check whether the file was replaced, then check the data-source refresh setting and Joomla or CDN page caching.

Why is my CSV or Excel file refused?

Check the filename, allowed extensions, size and additional MIME restriction. Use a single-extension filename and UTF-8 text. Macro-enabled Excel formats are not supported; JSON/XML must be valid, and renaming a file does not convert it.

A file with this name already exists.

Enable Replace existing files if updates should replace it. Otherwise upload under a new name, then change the data source's path if it should read that new file.

The form has expired or the upload cannot be confirmed.

Reload the upload page and check your connection. If a transfer may have completed, check Upload history before retrying. Repeated expiry can mean a cache is serving an old form.

The destination is refused or cannot be written.

Use a site-relative data folder inside the Joomla root. Core code directories and paths through symlinks are refused. Ask the administrator to check folder permissions and PHP/web-server upload limits.

What happens if I uninstall the uploader?

Uploaded files and the audit table are deliberately retained. Removing the uploader does not remove the source files your tables may still use.

Set it up once, update it from the site

Choose the accounts, destination and filename, connect the file to your data source, and share the upload-page link with the person maintaining the data.

Back to the Knowledge Base