Save 30% on annual Pro plans with code PROMO30.

FoldRocket

WordPress Download From Media Library: Every Method

Learn how to download files from the WordPress media library: single files natively, bulk via plugins, and fixes for timeouts and missing files.

  • Article
  • 12 min read
WordPress Download From Media Library: Every Method

Key takeaways

  • WordPress downloads single files natively via the attachment details screen, but has no bulk download action.
  • Tools → Export produces an XML of media metadata only, never the actual image or video files.
  • Bulk ZIP exports may fail due to PHP limits: max_execution_time 30 and memory_limit 128M by default, so chunked tools or WP-CLI are recommended.
  • Exports query the posts table, so orphaned and unregistered files in wp-content/uploads are skipped, leading to mismatched library and disk counts.
  • Folder plugins like HappyFiles and FileBird use virtual folders, meaning there is no physical folder on disk to zip or download.

Downloading from the WordPress media library works natively for one file at a time, but bulk exports require a plugin, a ZIP export tool, or your hosting file manager. Each method has its own limitations, especially with large libraries. This guide covers every scenario, from a single image to a full export, and the best methods to use.

How do you download a single image or video from the WordPress media library?

For a single file, you can skip plugins entirely. WordPress provides three native methods, each taking under ten seconds.

Download from the attachment details screen

Click the file in the grid to open the attachment details modal, then click the Download file link under "Attachment Display Settings" or in the right sidebar. This saves the original, unresized file to your machine, not a thumbnail. It works for images, PDFs, and most file types. If you only see "Copy URL to clipboard", use that URL in a new tab and save from there.

How to download video from WordPress media library when there is no download link

Videos often lack the Download link in the modal. Copy the file URL instead, paste it into a browser tab, then right-click and choose "Save video as". The URL follows the /wp-content/uploads/YYYY/MM/filename pattern, so you can also access it directly from the uploads directory listing via your host's file manager. This URL method works for any file type treated oddly by the modal.

One caveat for multi-site managers: the grid and modal show items across the network, but a download only pulls from the individual site's uploads folder, so check which site you are browsing before handing files to a client.

How do you download multiple files at once without a plugin?

WordPress does not provide a native way to download multiple files from the media library in bulk. The grid view allows you to select multiple items for deletion, but the download action only exists on the single-item attachment details screen. This gap is why tutorials often recommend plugins or the two workarounds below.

The browser workaround and why it falls apart past a few dozen files

Open the grid view, click an image to open the attachment details modal, right-click the file, and choose "Save image as". Repeat this for each file. The browser will prompt you to save each file, but Chrome may block the twentieth prompt unless you allow multiple downloads. Additionally, filenames can collide: WordPress names files image-1.jpg, image-2.jpg, requiring local renaming. This method is manageable for a few files but cumbersome for many.

When to skip the media library entirely and grab the uploads folder

For larger downloads, bypass the media library and access /wp-content/uploads/ directly through your host's file manager, SFTP, or cPanel ZIP-and-download. This method retrieves every file in one archive, organized by year and month. However, the uploads folder may contain files not registered in the library, resulting in a ZIP that does not match the grid view. If your goal is to provide cleaner sites rather than a raw dump, a cleanup pass first (see the final section) or a tool like FoldRocket can help streamline the process.

Which WordPress plugins let you export or download the media library in bulk?

Criteria to judge a WordPress plugin for downloading the media library

When evaluating plugins, consider three factors: active maintenance, payment model (one-time or subscription), and additional features beyond downloading. Maintenance is crucial, as abandoned plugins can lead to issues, especially after a WordPress update. A download tool that stops working requires manual URL copying from the attachment details screen, where WordPress does provide a "Copy URL" and download link per file.

How the options compare

PluginAdditional FeaturesPricing Model
HappyFilesFolders, gallery managementOne-time or yearly
WP Media FolderFolders, rename, import/exportYearly
FileBirdFoldersYearly
Real Media LibraryFolders, shortcutsYearly
Media File RenamerAuto-rename filesAdjacent, pairs with export workflows

Where FoldRocket falls short on pure export

FoldRocket (https://foldrocket.com/faqs/) is designed for cleanup, virtual folders, ALT text management, and renaming, rather than as a dedicated bulk exporter. It helps you maintain a clean library so that the ZIP you create via hosting or native tools contains no junk. However, if you need a one-click full-library export immediately, a dedicated tool or the methods outlined in the next section may be more suitable.

How do you export the entire media library as a ZIP file?

Plugin route: ZIP the whole library

A dedicated export plugin can create a ZIP of every attachment in your library and provide a download link. Choose a suitable plugin, run the export, and download the file. Be cautious with large libraries, as timeouts and memory limits can cause issues; check the failure modes in the next section before starting a large export.

Native WordPress export and what it does not include

Using Tools → Export with the Media option generates an XML file of media items, including titles, ALT text, dates, and metadata, but does not include the actual image or video files. This XML can be useful for migrating content structure between installations, but if you need the files themselves, you will need to pull them separately. Developers often overlook this and only realize the files are missing after the original site is gone. To avoid this, run a test restore on a staging copy first to confirm the images appear, and pull the files using one of the methods mentioned earlier before deleting anything from the original installation.

Hosting file manager route

Your host's file manager or SFTP can provide access to the entire wp-content/uploads folder, which contains every uploaded file. However, this folder may include files that the media library has forgotten, leftovers from deleted posts, and resized variants, resulting in a larger and messier folder than the library suggests. If the mismatch is significant, our cleanup tools at FoldRocket support can help reconcile the two before you deliver cleaner sites.

Why does a bulk media download fail or time out, and how do you fix it?

Bulk exports can fail for several reasons: PHP execution limits, memory exhaustion, ZIP size caps, low disk space, and files that do not make it into the archive.

Timeout and memory limits

PHP defaults to max_execution_time of 30 seconds and memory_limit of 128M (PHP manual). Attempting to compress a multi-gigabyte library may result in timeouts or errors. You can increase these limits in php.ini or .htaccess, request your host to raise them if they are locked, or run the export from WP-CLI, where no web timeout applies. Additionally, ensure you have sufficient disk space; the ZIP file needs roughly the same size as the files being compressed, meaning a 5 GB library requires at least 10 GB of free space.

Missing files: why your export is smaller than your library

Exports typically query the posts table, meaning images attached to nothing, deleted parents, or files uploaded directly to the uploads folder will be skipped. This discrepancy is also why the library count and the file count on disk do not match. If you need everything, exporting from the filesystem is the best option, followed by reconciling the two.

Chunked downloads as the fix

Effective tools build the ZIP in batches of a few hundred files per request, then provide the finished archive. This approach keeps each request under the timeout limit. FoldRocket employs this method for cleanup and export, and the same batching logic is applicable whether you are exporting one folder or an entire site.

How do you download media that lives in subfolders or custom folders?

Virtual folders vs physical folders: the download trap

Folder plugins like HappyFiles, FileBird, WP Media Folder, and Real Media Library utilize virtual folders. They store assignments in the database and do not interact with the uploads directory, so your /wp-content/uploads/2024/03/ structure remains flat and date-based, regardless of how organized the library appears. Consequently, there is no physical folder on disk that you can zip or download through your hosting file manager. A "download this folder" request effectively becomes a request to "download these specific attachments," and the folder plugin itself usually lacks an export feature.

Downloading everything in a virtual folder

There are two viable methods. First, filter the media library to show the folder's contents, select the results, and bulk-download them using the methods covered earlier in this article. Alternatively, if the folder corresponds to identifiable files, note the filenames and retrieve them from the uploads directory by date. For large folders, the filtered-library method is typically faster than manually hunting for paths. If you want folders to maintain their physical structure after handover, this limitation applies to every folder plugin mentioned here, including ours.

Should you download from the media library or pull files from your hosting file manager?

When the media library is the right source

Use the library route when your download relies on selections and metadata context: choosing specific attachments, preserving titles and ALT text, or exporting only what a folder contains. Plugins like FileBird, HappyFiles, WP Media Folder, and Real Media Library facilitate bulk selection, but always verify each plugin's maintenance status on their WordPress.org or vendor page before relying on them (FileBird plugin page). Abandoned folder plugins can lead to complications, and users have faced issues when removing inactive ones mid-project.

When the uploads folder is the right source

If the library is large, disorganized, or you need raw files regardless of what WordPress indexes, bypass the admin interface and use your host's file manager or SFTP to access wp-content/uploads. Keep in mind that the two sources differ. Orphaned files, uploads that were never registered as attachments, exist only in the uploads folder, meaning a library export may miss them. Conversely, deleting an attachment in the admin can leave the file behind. Choose based on which mismatch is more acceptable for your needs.

How do you clean up before you export so you are not downloading junk?

Exporting a neglected library carries over its issues: unused media, duplicates, and images lacking ALT text will all be included in your ZIP. Clean up first, then export a more manageable file.

Find unused media and duplicates before the export

WordPress does not have a built-in way to identify which attachments are actually used in posts, so the uploads folder retains every screenshot and replaced graphic you have ever uploaded. A cleanup process that scans for unattached files and duplicate filenames allows you to remove unnecessary items before they enter your export. This is a key function of FoldRocket: it flags unused media and duplicates, checks for ALT text, and enables file renaming so the ZIP you download reflects a library you would be proud to hand over to a client. Always run the cleanup on a staging site first, spot-checking that nothing critical breaks, before proceeding to export.

Hand over cleaner sites: the agency handoff workflow

For multi-site managers, perform the cleanup once per site, then export a streamlined ZIP as the final deliverable. Fewer files lead to faster exports, fewer timeout failures, and a client who receives a tidy library instead of a cluttered one.

FAQ

Can I download all images from WordPress media library at once for free?

No, WordPress does not offer a native bulk download option. Free methods include the browser's "Save image as" loop, which becomes impractical beyond a few dozen files, or zipping the wp-content/uploads folder through your host's file manager or SFTP at no cost. The uploads route can handle thousands of files but may include orphaned files not shown in the library.

Does WordPress export include the actual image files or just the XML?

Only the XML. Using Tools → Export with the Media option generates a file containing titles, ALT text, dates, and metadata, but does not include the actual image or video files. Developers often discover the missing files only after the original site is gone, so always run a test restore before deleting anything and ensure you pull the files separately.

Why is my media library ZIP smaller than my uploads folder?

Exports typically query the posts table, so files that are not attached to any posts, files with deleted parents, or uploads placed directly into the uploads folder will be excluded. The uploads folder also contains resized variants and leftovers from deleted posts that the library does not register, leading to discrepancies in counts.

Is there a limit on how many files I can download from the media library?

There is no hard file-count limit, but server limits can affect bulk jobs. PHP defaults to max_execution_time of 30 seconds and memory_limit of 128M, meaning large ZIP exports may time out or result in errors. Disk space is also a consideration, as the archive needs roughly the same size as the compressed files. Chunked tools that process a few hundred files per request can help avoid timeouts.

How do I download media from a multisite network without doing each site one by one?

Unfortunately, this is not reliably possible. The grid and attachment modal display items across the network, but a download only retrieves files from the individual site's uploads folder. There is no native or plugin method that aggregates media across sites into one export. Plan to clean up each site, export its streamlined ZIP, and treat each archive as the final deliverable.

Explore the topic:

Review duplicate cleanup in the demo

Inspect duplicate groups and usage before choosing what to keep.

Review duplicate cleanup in the demo

Join our newsletter.