{"id":12279,"date":"2026-08-26T06:23:00","date_gmt":"2026-08-26T11:23:00","guid":{"rendered":"https:\/\/infiniteuploads.com\/?p=12279"},"modified":"2026-08-25T11:23:40","modified_gmt":"2026-08-25T16:23:40","slug":"big-file-uploads-2-2-0-sets-a-different-maximum-upload-file-size-for-every-file-type","status":"publish","type":"post","link":"https:\/\/infiniteuploads.com\/blog\/big-file-uploads-2-2-0-sets-a-different-maximum-upload-file-size-for-every-file-type\/","title":{"rendered":"Big File Uploads 2.2.0 Sets a Different Maximum Upload File Size for Every File Type"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p class=\"wp-block-paragraph\">Since release in 2015, Big File Uploads has been a one trick pony. It made uploading big files to WordPress easier, and it did it very well! But, we heard from user feedback and found that people were wanting a way to set different upload limits by file type. We already set a new upload limit based on user role, so could it not extend it to file types? That never made much sense. A product photo and a conference recording aren't the same kind of file, so why should they share the same ceiling? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Big File Uploads 2.2.0 fixes that. You can now set a separate maximum upload file size for images, audio, video, documents, archives, and code, and you can do it for every user role on the site.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2026\/08\/settings-page-screenshot-showing-maximum-upload-size-options-with-toggles-and-text.jpg\" alt=\"Settings page screenshot showing maximum upload size options with toggles and text.\" class=\"wp-image-12282\"><figcaption class=\"wp-element-caption\">Flip on Customize by file type and every file type gets its own limit. Anything you leave blank keeps using the main limit.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-one-upload-limit-was-never-enough\">Why one upload limit was never enough<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Big File Uploads exists to raise the WordPress maximum upload file size past whatever your host set, which is why it runs on over 150,000 sites. The catch is that raising the limit high enough for video raises it for everything. Set it to 2 GB so your team can upload webinar recordings, and now every 40 MB camera original from someone's phone sails straight into the media library too.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Those oversized images are the ones that quietly eat your storage. We wrote about <a href=\"https:\/\/infiniteuploads.com\/blog\/wordpress-image-sizes-are-eating-your-server-storage\/\">how WordPress image sizes eat your server storage<\/a>, and the math only gets worse when the originals are huge to begin with. WordPress creates a whole set of resized copies for every image you upload, so one bloated photo turns into six or seven bloated files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A single limit forces you to pick between two bad options. Keep it low and video uploads fail. Raise it and images get a free pass. Per-type limits let you say 10 MB for images, 2 GB for video, and stop thinking about it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-the-new-limits-work\">How the new limits work<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The main limit still does the job it always did. The new part is a second layer underneath it. When you turn on Customize by file type, you get a field for each type, and any field you fill in overrides the main limit for that type only. Leave a field blank and that type keeps inheriting the main limit. Nothing changes until you type a number.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Think of it like a post office with one counter. The old way, every package got weighed against the same rule. Now the clerk has a different maximum for letters, boxes, and crates, but still only one counter, and anything without its own rule falls back to the general one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It stacks with the per-role limits you may already be using. Turn on both toggles and every role gets its own main limit AND its own per-type overrides. An Author can be capped at 5 MB for images while an Administrator gets 20 MB, and both can still upload a 2 GB video if that's what you decide.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2026\/08\/settings-interface-showing-upload-size-limits-for-administrator-editor-and-author-roles.jpg\" alt=\"Settings interface showing upload size limits for Administrator, Editor, and Author roles.\" class=\"wp-image-12281\"><figcaption class=\"wp-element-caption\">With both toggles on, each role gets a main limit and its own set of file type limits.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The limit is enforced in two places. When you pick a file in the media uploader, your browser checks it on the spot, so an oversized file is turned away before a single byte uploads, with a message that names the type and the limit it hit. Then the server checks it again as the chunks arrive. Big File Uploads sends large files in small pieces to get around server timeouts, and the size check now runs on every piece, including the first one.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2026\/08\/upload-interface-screenshot-showing-file-size-error-for-conference-keynote-jpg-exceeding-10-mb.jpg\" alt='Upload interface screenshot showing file size error for \"conference-keynote.jpg\" exceeding 10 MB.' class=\"wp-image-12280\"><figcaption class=\"wp-element-caption\">Pick a file that's over its type limit and you hear about it right away, before the upload starts.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setting-it-up-takes-about-a-minute\">Setting it up takes about a minute<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Update Big File Uploads to 2.2.0, then go to <strong>Settings<\/strong> and click <strong>Big File Uploads<\/strong>.<\/li>\n\n\n\n<li>Set your main limit in the <strong>Maximum Upload Size<\/strong> box. This is the fallback for any type you don't customize.<\/li>\n\n\n\n<li>Switch on <strong>Customize by file type<\/strong>. A row of fields appears under the main limit, one per file type.<\/li>\n\n\n\n<li>Fill in the types you want to control and pick MB or GB for each. Leave the rest blank.<\/li>\n\n\n\n<li>If you want different rules per role, switch on <strong>Customize by user role<\/strong> too. Each role gets its own section with the same fields.<\/li>\n\n\n\n<li>Click <strong>Save Changes<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>One detail worth knowing.<\/strong> The Code type only shows up if your site actually allows code files like CSS or JavaScript to be uploaded through the media library. On a stock WordPress install, administrators and editors can, so you'll see it. If a security plugin has locked those uploads down, the field stays out of your way. A limit for files that can't be uploaded would just be clutter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"for-developers\">For developers<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">2.2.0 also adds a <code>bfu_upload_limit<\/code> filter. It hands you the resolved limit in bytes, the filename, and the settings scope in play (a role key or \"all\"), and whatever you return is what gets enforced. If you need a rule the settings screen can't express, like a bigger limit for one specific folder or one specific user, that's where it goes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"where-the-big-files-should-actually-live\">Where the big files should actually live<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per-type limits keep the wrong files from piling up. They don't change the fact that the right files, the 2 GB videos and the giant PDFs you genuinely need, still land on your web server and get served from it on every visit. That's the part <a href=\"https:\/\/infiniteuploads.com\/\">Infinite Uploads<\/a> handles. It moves your media library to the cloud and delivers it through a CDN, so your server stops doing storage and delivery work it was never good at. Big File Uploads gets the file in. Infinite Uploads keeps it from weighing your site down.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-vivid-cyan-blue-background-color has-background wp-element-button\" href=\"https:\/\/infiniteuploads.com\/pricing\/\">See the Infinite Uploads plans<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Big File Uploads 2.2.0 is free, as always. <a href=\"https:\/\/wordpress.org\/plugins\/tuxedo-big-file-uploads\/\">Grab the update<\/a>, flip the toggle, and give your images a limit that actually fits them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Since release in 2015, Big File Uploads has been a one trick pony. It made uploading big files to WordPress easier, and it did it very well! But, we heard from user feedback and found that people were wanting a way to set different upload limits by file type. We already set a new upload [&hellip;]<\/p>\n","protected":false},"author":3787,"featured_media":12283,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wds_primary_category":1,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-12279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts\/12279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/users\/3787"}],"replies":[{"embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/comments?post=12279"}],"version-history":[{"count":2,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts\/12279\/revisions"}],"predecessor-version":[{"id":12312,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts\/12279\/revisions\/12312"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/media\/12283"}],"wp:attachment":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/media?parent=12279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/categories?post=12279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/tags?post=12279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}