{"id":282956,"date":"2026-02-18T17:07:13","date_gmt":"2026-02-18T17:07:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/import-from-server\/"},"modified":"2026-02-18T17:07:08","modified_gmt":"2026-02-18T17:07:08","slug":"miller-media-server-file-import","status":"publish","type":"plugin","link":"https:\/\/fa.wordpress.org\/plugins\/miller-media-server-file-import\/","author":9374780,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Miller Media Server File Import","header_author":"Miller Media","header_description":"Browse files on the server and import them into the WordPress Media Library.","assets_banners_color":"cecece","last_updated":"2026-02-18 17:07:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/mattmiller.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":258,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"MillerMediaNow","date":"2026-02-18 17:07:08"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3464547,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3464547,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3464547,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3464547,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"File browser with directory listing and import controls","2":"Import progress with per-file status log","3":"Settings page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[88,87,84,2925,259],"plugin_category":[50,59],"plugin_contributors":[153151],"plugin_business_model":[],"class_list":["post-282956","plugin","type-plugin","status-publish","hentry","plugin_tags-files","plugin_tags-import","plugin_tags-media","plugin_tags-server","plugin_tags-upload","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-millermedianow","plugin_committers-millermedianow"],"banners":{"banner":"https:\/\/ps.w.org\/miller-media-server-file-import\/assets\/banner-772x250.png?rev=3464547","banner_2x":"https:\/\/ps.w.org\/miller-media-server-file-import\/assets\/banner-1544x500.png?rev=3464547","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/miller-media-server-file-import\/assets\/icon-128x128.png?rev=3464547","icon_2x":"https:\/\/ps.w.org\/miller-media-server-file-import\/assets\/icon-256x256.png?rev=3464547","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Miller Media Server File Import<\/strong> lets WordPress administrators browse files already on the server and import them directly into the Media Library \u2014 no need to download and re-upload.<\/p>\n\n<p>This is useful when:<\/p>\n\n<ul>\n<li>You've migrated files via FTP\/SFTP and need to register them in WordPress<\/li>\n<li>A developer has placed assets on the server that need to be in the Media Library<\/li>\n<li>You have files in a non-standard location that should be accessible through WordPress<\/li>\n<\/ul>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>AJAX-powered file browser with breadcrumb navigation<\/li>\n<li>Select individual files or use \"Select All\" to import in bulk<\/li>\n<li>Duplicate detection \u2014 files already in the Media Library are flagged<\/li>\n<li>Copy or move files from outside the uploads directory<\/li>\n<li>Restrict browsing to a configurable root directory (defaults to wp-content)<\/li>\n<li>Limit allowed file types via settings<\/li>\n<li>Full REST API for programmatic access<\/li>\n<li>Works with any user role that has the <code>upload_files<\/code> capability<\/li>\n<\/ul>\n\n<p><strong>Security:<\/strong><\/p>\n\n<ul>\n<li>Path traversal protection via <code>realpath()<\/code> boundary checks<\/li>\n<li>MIME type validation using WordPress core functions<\/li>\n<li>Capability checks on all endpoints (<code>upload_files<\/code> for browse\/import, <code>manage_options<\/code> for settings)<\/li>\n<li>CSRF protection via WordPress REST API nonces<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>miller-media-server-file-import<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the Plugins menu<\/li>\n<li>Go to <strong>Media &gt; Miller Media Server File Import<\/strong> to browse and import files<\/li>\n<li>Optionally configure settings under <strong>Settings &gt; Miller Media Server File Import<\/strong><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20file%20types%20can%20be%20imported%3F\"><h3>What file types can be imported?<\/h3><\/dt>\n<dd><p>By default, any file type that WordPress allows for uploads. You can further restrict this with the \"Allowed File Types\" setting.<\/p><\/dd>\n<dt id=\"where%20do%20imported%20files%20end%20up%3F\"><h3>Where do imported files end up?<\/h3><\/dt>\n<dd><p>Files already in the WordPress uploads directory are used in place. Files from outside uploads are copied (or moved, based on your settings) into the standard uploads directory.<\/p><\/dd>\n<dt id=\"will%20this%20create%20duplicate%20files%3F\"><h3>Will this create duplicate files?<\/h3><\/dt>\n<dd><p>The plugin checks for duplicates before importing. Files that have already been imported are shown as \"Already imported\" in the browser and cannot be re-imported.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20root%20browsing%20directory%3F\"><h3>Can I change the root browsing directory?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Settings &gt; Miller Media Server File Import<\/strong> and set the Root Directory to any path on the server.<\/p><\/dd>\n<dt id=\"who%20can%20use%20this%20plugin%3F\"><h3>Who can use this plugin?<\/h3><\/dt>\n<dd><p>Any user with the <code>upload_files<\/code> capability can browse and import files. Only administrators (<code>manage_options<\/code>) can change the plugin settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>AJAX file browser with breadcrumb navigation<\/li>\n<li>Bulk import with progress tracking<\/li>\n<li>Duplicate detection<\/li>\n<li>Copy or move import behavior<\/li>\n<li>Configurable root directory and allowed file types<\/li>\n<li>REST API endpoints for browse and import<\/li>\n<\/ul>","raw_excerpt":"Browse files on the server and import them into the WordPress Media Library.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/282956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=282956"}],"author":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/millermedianow"}],"wp:attachment":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=282956"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=282956"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=282956"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=282956"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=282956"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=282956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}