{"id":220861,"date":"2025-02-13T18:11:29","date_gmt":"2025-02-13T18:11:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/url-image-importer\/"},"modified":"2026-06-03T18:12:58","modified_gmt":"2026-06-03T18:12:58","slug":"url-image-importer","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/url-image-importer\/","author":14473987,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2","stable_tag":"1.2","tested":"7.0","requires":"5.3","requires_php":"7.4","requires_plugins":null,"header_name":"URL Image Importer","header_author":"Infinite Uploads","header_description":"A plugin to import multiple images into the WordPress Media Library from URLs.","assets_banners_color":"edf3f5","last_updated":"2026-06-03 18:12:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/infiniteuploads.com","rating":5,"author_block_rating":0,"active_installs":600,"downloads":5828,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"BWW","date":"2025-02-13 18:15:17"},"1.0.0":{"tag":"1.0.0","author":"BWW","date":"2025-02-13 18:08:11"},"1.0.1":{"tag":"1.0.1","author":"BWW","date":"2025-02-25 20:00:58"},"1.0.2":{"tag":"1.0.2","author":"BWW","date":"2025-03-06 21:32:15"},"1.0.3":{"tag":"1.0.3","author":"BWW","date":"2025-08-04 15:32:38"},"1.0.6":{"tag":"1.0.6","author":"BWW","date":"2025-10-17 22:28:13"},"1.0.7":{"tag":"1.0.7","author":"BWW","date":"2025-11-14 16:25:57"},"1.0.8":{"tag":"1.0.8","author":"BWW","date":"2025-12-29 20:47:39"},"1.1":{"tag":"1.1","author":"BWW","date":"2026-05-15 14:26:27"},"1.2":{"tag":"1.2","author":"BWW","date":"2026-06-03 18:12:58"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3559858,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3559858,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3559858,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.0","1.0.1","1.0.2","1.0.3","1.0.6","1.0.7","1.0.8","1.1","1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3559858,"resolution":"1","location":"assets","locale":"","width":2610,"height":1170},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3559858,"resolution":"2","location":"assets","locale":"","width":4144,"height":2028},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3559858,"resolution":"3","location":"assets","locale":"","width":4148,"height":1968},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3559858,"resolution":"4","location":"assets","locale":"","width":2710,"height":1376}},"screenshots":{"1":"URL import tab for adding images directly from public links.","2":"WordPress XML Import tab for importing images from export files.","3":"CSV Import tab for importing bulk image URLs and metadata.","4":"Disk utility for analyzing storage usage by file type."}},"plugin_section":[],"plugin_tags":[21157,238319,74805,238320,233],"plugin_category":[],"plugin_contributors":[231358],"plugin_business_model":[],"class_list":["post-220861","plugin","type-plugin","status-publish","hentry","plugin_tags-csv-import","plugin_tags-image-import","plugin_tags-import-image","plugin_tags-import-image-to-media-library","plugin_tags-media-library","plugin_contributors-bww","plugin_committers-bww"],"banners":{"banner":"https:\/\/ps.w.org\/url-image-importer\/assets\/banner-772x250.jpg?rev=3559858","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/url-image-importer\/assets\/icon-128x128.png?rev=3559858","icon_2x":"https:\/\/ps.w.org\/url-image-importer\/assets\/icon-256x256.png?rev=3559858","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/url-image-importer\/assets\/screenshot-1.png?rev=3559858","caption":"URL import tab for adding images directly from public links."},{"src":"https:\/\/ps.w.org\/url-image-importer\/assets\/screenshot-2.png?rev=3559858","caption":"WordPress XML Import tab for importing images from export files."},{"src":"https:\/\/ps.w.org\/url-image-importer\/assets\/screenshot-3.png?rev=3559858","caption":"CSV Import tab for importing bulk image URLs and metadata."},{"src":"https:\/\/ps.w.org\/url-image-importer\/assets\/screenshot-4.png?rev=3559858","caption":"Disk utility for analyzing storage usage by file type."}],"raw_content":"<!--section=description-->\n<p>URL Image Importer allows you to effortlessly import images from URLs, CSV spreadsheets, or WordPress XML export files directly into your Media Library. Simply paste one or multiple image links, upload a CSV file, or import your WordPress export file\u2014and it will handle the rest, importing them all with ease!<\/p>\n\n<p>The plugin fetches images directly from external links, validates them, and adds them to your Media Library\u2014saving you time and effort. It\u2019s perfect for quickly adding assets to your site without the hassle of downloading files to your computer and manually uploading them to WordPress.<\/p>\n\n<h3>URL Image Importer Plugin Features<\/h3>\n\n<ul>\n<li>Import any image directly into your WordPress Media Library from a URL\u2014no file uploads required.<\/li>\n<li>Import multiple images at once using a <strong>CSV spreadsheet<\/strong> with image URLs in bulk.<\/li>\n<li>Import public image files from Google Drive share links in the URL and CSV import tools.<\/li>\n<li>Import from <strong>WordPress XML export files<\/strong> to restore or migrate images between sites.<\/li>\n<li>Export a spreadsheet-ready <strong>URL mapping CSV<\/strong> (Old URL \u2192 New URL) after batch imports for database replacement workflows.<\/li>\n<li>Works seamlessly with any hosting environment or server setup.<\/li>\n<li>Automatically validate and save images, ensuring they\u2019re ready to use in your content.<\/li>\n<li>Get smart recommendations based on available space in your temporary uploads directory.<\/li>\n<li>Works with any server or hosting provider.<\/li>\n<li>Upload any size file directly to a connected Infinite Uploads cloud account.<\/li>\n<li>Uploads directory disk utility for quickly analyzing storage usage in your media library.<\/li>\n<\/ul>\n\n<h3>Import Images to your Media Library<\/h3>\n\n<p>Paste in a publicly accessible URL with a compatible file extension, use a public Google Drive image file share link, or upload a CSV\/XML file and enjoy media management ease.<\/p>\n\n<h3>Bulk Import Support<\/h3>\n\n<p>Allows you to paste multiple URLs, upload a CSV file, or use a WordPress XML export to import several images simultaneously without timing out. It processes one at a time, recursively importing them.\nFor dedicated high-speed servers, running imports in chunks of 500-2,000 URLs per run provides a strong balance of speed and reliability.<\/p>\n\n<h3>CSV Imports<\/h3>\n\n<p>Upload a CSV file containing one or more image URLs (and optional metadata). The plugin automatically processes each row and imports all valid images into your Media Library. Perfect for large-scale imports from spreadsheets or external asset lists.<\/p>\n\n<h3>Google Drive Image Imports<\/h3>\n\n<p>Paste a public Google Drive image file link into the URL importer or include one in your CSV. The file must be publicly downloadable without signing in, and URL Image Importer validates the downloaded file contents before importing it. Google Drive folders, private files, videos, Docs, Sheets, Slides, Forms, and other non-image items are skipped instead of imported.<\/p>\n\n<h3>XML Imports from WordPress Export Feature<\/h3>\n\n<p>Easily import images from a standard WordPress XML export file. The importer automatically parses the XML file, locates image URLs, and downloads them into your Media Library. This is ideal for restoring lost media or transferring content between sites.<\/p>\n\n<h3>Uploads Disk Utility<\/h3>\n\n<p>The URL Image Importer plugin includes a media library disk utility that shows a breakdown of the files in your uploads directory by type and size. See how many images, videos, archives, documents, code, and other files (like audio) there are and how much space they're taking up.<\/p>\n\n<h3>FTP\/SFTP Client-free File Uploading<\/h3>\n\n<p>Upload files right to the WordPress media library from URLs without additional credentials and settings. Skip the protocol settings, server names, port numbers, usernames, long passwords, and private keys. Grab the image &amp; paste the URL in!<\/p>\n\n<h3>Compatible with Big File Uploads<\/h3>\n\n<p>Bypass the upload limits on your server, set by your hosting provider, that prevent you from uploading large files to your media library.<\/p>\n\n<h3>Wanna make your media library infinitely scalable? Move your big files and uploads directory to the cloud.<\/h3>\n\n<p>Big File Uploads is built to work with <a href=\"https:\/\/wordpress.org\/plugins\/infinite-uploads\/\">Infinite Uploads<\/a> to make your site's upload directory infinitely scalable. A large WordPress media library can slow down your server and run up the cost of bandwidth and storage with your hosting provider. Move your uploads directory to the Infinite Uploads cloud to save on storage and bandwidth and improve site performance and security. Learn more about <a href=\"https:\/\/infiniteuploads.com\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=URLII_readme&amp;utm_term=promo\">Infinite Uploads cloud storage and content delivery network<\/a>.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin does not collect or share any data. Site admins can optionally subscribe to email updates which is subject to our <a href=\"https:\/\/infiniteuploads.com\/privacy\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=bfu_readme&amp;utm_term=privacy\">Privacy Policy<\/a>.<\/p>\n\n<h3>About Us<\/h3>\n\n<p>Infinite Uploads builds WordPress plugins and is a premium cloud storage provider and content delivery network (CDN) for all your WordPress media files. Learn more here:\n<a href=\"https:\/\/infiniteuploads.com\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=bfu_readme&amp;utm_term=about_us\">infiniteuploads.com<\/a><\/p>\n\n<p>Learn how to manage large files on our blog:\n<a href=\"https:\/\/infiniteuploads.com\/blog\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=URLII_readme&amp;utm_term=blog\">Infinite Uploads Blog, Tips, Tricks, How-tos, and News<\/a><\/p>\n\n<p>Enjoy!<\/p>\n\n<h3>Contact and Credits<\/h3>\n\n<p>Maintained by the cloud architects and WordPress engineers at <a href=\"https:\/\/infiniteuploads.com\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=URLII_readme&amp;utm_term=credits\">Infinite Uploads<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>After installing and activating the plugin, navigate to <strong>Media &gt; Import Image from URL<\/strong> in the WordPress admin panel.  <\/li>\n<li>Enter the URL of the image you want to import, or upload a CSV or XML file.  <\/li>\n<li>Submit the form. If successful, the image(s) will be added to the Media Library, and you\u2019ll get a link to edit them.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20file%20types%20can%20be%20uploaded%3F\"><h3>What file types can be uploaded?<\/h3><\/dt>\n<dd><p>\u2022   JPEG\/JPG (.jpeg, .jpg)\n    \u2022   PNG (.png)\n    \u2022   GIF (.gif)\n    \u2022   ICO (.ico)\n    \u2022   WebP (.webp) (since WordPress 5.8)\n    \u2022   SVG (.svg)<\/p><\/dd>\n<dt id=\"can%20i%20import%20images%20using%20a%20csv%20file%3F\"><h3>Can I import images using a CSV file?<\/h3><\/dt>\n<dd><p>Yes! You can upload a CSV file with one or multiple image URLs listed in a column, and the plugin will automatically import them all.<\/p><\/dd>\n<dt id=\"can%20i%20import%20images%20from%20google%20drive%3F\"><h3>Can I import images from Google Drive?<\/h3><\/dt>\n<dd><p>Yes, in the URL importer and CSV importer, if the Google Drive link points directly to a public image file that can be downloaded without signing in. Google Drive folders, videos, Docs, Sheets, Slides, Forms, private files, and other non-image files are not supported. Google API credentials and OAuth are not required.<\/p><\/dd>\n<dt id=\"can%20i%20import%20images%20from%20a%20wordpress%20xml%20export%3F\"><h3>Can I import images from a WordPress XML export?<\/h3><\/dt>\n<dd><p>Yes! You can upload a WordPress XML export file, and the importer will detect all image attachments and import them into your Media Library.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20how%20attachment%20titles%20and%20slugs%20are%20generated%3F\"><h3>Can I choose how attachment titles and slugs are generated?<\/h3><\/dt>\n<dd><p>Yes. The import screen includes a checked option to use filenames without extensions for attachment titles and slugs, matching WordPress uploads. Uncheck it before importing to keep the previous full-filename behavior.<\/p><\/dd>\n<dt id=\"can%20videos%20%28mp4%29%20be%20uploaded%3F\"><h3>Can videos (mp4) be uploaded?<\/h3><\/dt>\n<dd><p>Not at the moment. URL Image Importer currently imports image files only.<\/p><\/dd>\n<dt id=\"how%20large%20of%20a%20file%20can%20i%20import%3F\"><h3>How large of a file can I import?<\/h3><\/dt>\n<dd><p>As large as your maximum upload size is set to, or however much your server can support.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20big%20file%20uploads%20%26%20infinite%20uploads%3F\"><h3>Is it compatible with Big File Uploads &amp; Infinite Uploads?<\/h3><\/dt>\n<dd><p>Yes.<\/p><\/dd>\n<dt id=\"is%20infinite%20uploads%20required%20for%20url%20image%20importer%20to%20work%3F\"><h3>Is Infinite Uploads required for URL Image Importer to work?<\/h3><\/dt>\n<dd><p>No. <a href=\"https:\/\/wordpress.org\/plugins\/infinite-uploads\/\">Infinite Uploads<\/a> is an optional service to offload your media files to the cloud and make your WordPress website storage infinitely scalable. Perfect for sites that need to store many large file uploads.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2 - 05\/27\/2026<\/h4>\n\n<ul>\n<li>Added support for importing public Google Drive image file links from the URL importer and CSV importer.<\/li>\n<li>Added content-based validation for Google Drive downloads so non-images, private\/login pages, folders, videos, and Google Workspace document links are skipped instead of imported.<\/li>\n<li>Improved CSV handling so Google Drive share links without image file extensions are accepted for import preview and validated during import.<\/li>\n<li>Fixed CSV preview behavior for already-imported URLs so duplicates can be handled by the batch importer and URL mapping export.<\/li>\n<\/ul>\n\n<h4>1.1 - 05\/15\/2026<\/h4>\n\n<ul>\n<li>Cleaner image titles: imported images now use the filename without the \".jpg\" or \".png\" extension as the image's title and URL handle in your Media Library, matching what WordPress does for a manual upload. Applies to URL, WordPress XML, and CSV imports.<\/li>\n<li>New URL mapping spreadsheet: after a batch import, you can download a CSV that pairs each original web URL with its new location in your Media Library \u2014 handy for find-and-replacing old image links across your posts. Only users with media upload permission can download the file.<\/li>\n<li>Fixed: the \"Download URL Mapping CSV\" button could fail in some browsers and show an error page instead of saving the file. The download now works reliably and the saved filename keeps non-English characters intact.<\/li>\n<li>Improved compatibility for sites running on Windows servers when verifying the mapping download.<\/li>\n<li>Cleanup: partial mapping files are removed when an import is canceled, and older mapping files are tidied up automatically after a day.<\/li>\n<li>Removed: a leftover developer test script that was accidentally included in earlier builds. It had no legitimate purpose after install and should not have shipped.<\/li>\n<li>Removed: an unused developer setup helper script that did not belong in a release.<\/li>\n<\/ul>\n\n<h4>1.0.8 - 12\/05\/2025<\/h4>\n\n<p><strong>SECURITY FIX - SVG XSS VULNERABILITY<\/strong>\n- Fixed: Stored Cross-Site Scripting (XSS) vulnerability via SVG file uploads reported by Wordfence\n- Security: Implemented whitelist-based SVG sanitization using the enshrined\/svg-sanitize library\n- Security: Extended fallback blacklist to include SVG animation events (onbegin, onend, onrepeat, onactivate)\n- Security: Added comprehensive coverage for all known SVG XSS vectors including SMIL animation events\n- Security: Added protection against javascript:, data:, and vbscript: URL schemes in SVG attributes\n- Security: Added validation to prevent malicious animate\/set elements targeting event handlers<\/p>\n\n<h4>1.0.7 - 11\/14\/2025<\/h4>\n\n<ul>\n<li>Added <strong>CSV import<\/strong> functionality for batch image imports from spreadsheets.<\/li>\n<li>Added <strong>XML import<\/strong> functionality to support images from WordPress export files.<\/li>\n<li>Added import option controls (re-import, preserve date, image-only filter).<\/li>\n<li>Added new UI tabs for <strong>URL Import<\/strong>, <strong>CSV Import<\/strong>, and <strong>WordPress XML Import<\/strong>.<\/li>\n<li>Added \u201cDownload Sample CSV\u201d helper link for quick template setup.<\/li>\n<li>Improved batch import performance and error handling.<\/li>\n<li>General performance improvements and UI refinements.\n<strong>SECURITY FIX - CRITICAL UPDATE<\/strong><\/li>\n<li>Fixed: Arbitrary file upload vulnerability reported by Wordfence Threat Intelligence<\/li>\n<li>Security: Removed reliance on user-controlled Content-Type HTTP headers for file validation<\/li>\n<li>Security: Implemented proper file validation BEFORE writing to disk using wp_check_filetype_and_ext()<\/li>\n<li>Security: Added actual image content validation using getimagesize()<\/li>\n<li>Security: Enforced strict mime type checking against WordPress allowed mime types<\/li>\n<li>Security: Files are now validated in temporary location before moving to uploads directory<\/li>\n<li>Security: Added unique filename generation to prevent file overwrites<\/li>\n<li>Hardened: Multiple layers of validation ensure only legitimate image files can be imported<\/li>\n<\/ul>\n\n<h4>1.0.6 - 10\/17\/2025<\/h4>\n\n<ul>\n<li>Added PSR-4 autoloading with Composer for improved code organization<\/li>\n<li>Added namespace support: UrlImageImporter\\Core, \\Admin, \\FileScan, \\Importer, \\Ajax, \\Utils<\/li>\n<li>Code quality improvements and bug fixes<\/li>\n<\/ul>\n\n<h4>1.0 - 1\/23\/2025<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Import images from URLs, CSV files, or WordPress XML exports directly into your WordPress Media Library to use across your entire site!","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/220861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=220861"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bww"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=220861"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=220861"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=220861"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=220861"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=220861"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=220861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}