|MediaWiki file: importImages.php|
|Source code:||master • 1.28.0 • 1.27.1|
|Classes:||Find code • Find documentation|
importImages.php is a script which uploads images to MediaWiki from the same computer where the wiki is configured. It doesn't do a remote upload.
Note: If you plan on importing the file descriptions on the image pages too, then you should do that before you run importImages.php. Otherwise, those file descriptions will be buried underneath the import in the page history. If you make this mistake, then you can fix it with a bot script such as FixFileDescriptionPagesBot.php.
Upload with default comment "Importing file"
php maintenance/importImages.php /path/to/images/directory
Upload with comment "[[Category:Sunflowers in full bloom]]"
php maintenance/importImages.php /path/to/images/directory --comment="[[Category:Sunflowers_in_full_bloom]]"
Importimages.php will not search and upload images in sub-directories (directory recursion) by default
An example of what a successful import of one image (Foo.jpg) looks like:
|root@f345:/home/t/public_html/mywikisite/public/w/maintenance# php importImages.php /home/t/public_html/import --extensions=svg,png,jpg,jpeg,gif,bmp,SVG,PNG,JPG,JPEG,GIF,BMP
|MediaWiki version:||≥ 1.21|
$ php importImages.php Import Images Imports images and other media files into the wiki USAGE: php importImages.php [options] <dir> <dir> : Path to the directory containing images to be imported Options: --extensions=<exts> Comma-separated list of allowable extensions, defaults to $wgFileExtensions. --overwrite Overwrite existing images with the same name (default is to skip them). --limit=<num> Limit the number of images to process. Ignored or skipped images are not counted. --from=<name> Ignore all files until the one with the given name. Useful for resuming aborted imports. <name> should be the file's canonical database form. --skip-dupes Skip images that were already uploaded under a different name (check SHA1) --search-recursively Search recursively for files in subdirectories. --sleep=<sec> Sleep between files. Useful mostly for debugging. --user=<username> Set username of uploader, default 'Maintenance script'. --check-userblock Check if the user got blocked during import. --comment=<text> Set file description, default 'Importing file'. --comment-file=<file> Set description to the content of <file>. --comment-ext=<ext> Causes the description for each file to be loaded from a file with the same name, but the extension <ext>. If a global description is also given, it is appended. --license=<code> Use an optional license template. --dry Dry run, don't import anything. --protect=<protect> Specify the protect value (autoconfirmed,sysop). --summary=<summary> Upload summary, description will be used if not provided. --timestamp=<timestamp> Override upload time/date, all MediaWiki timestamp formats are accepted. --unprotect Unprotects all uploaded images. --source-wiki-url If specified, take User and Comment data for each imported file from this URL. For example, --source-wiki-url="http://en.wikipedia.org/."
Note: "--comment-ext" defines a file extension like ".meta" that contains the file comment, i.e. the content of the wiki-metadata-page associated with each imported file. This supports per-file metadata, whereas the --comment option supports only per-import metadata. The value of --comment-ext works with or without a leading dot (.meta as well as meta), the value may be quoted or not. The associated file is searched both as appended and substituted extension. Thus, importing x.jpg and setting "--comment-ext meta" or "--comment-ext=meta" either of x.meta or x.jpg.meta will be used to set the initial metadata page (i.e. the page shown for File:x.jpg).
Note: The "canonical database form" required by "--from" is obtained from the file name by capitalizing the first letter, replacing all spaces with underscores, and then replacing multiple consecutive underscores with one underscore. For example, to start with the file
someFile with __weird_ spaces.png, the correct argument would be
Common error messages
Does not find the picture to upload
Example where the script doesn't find any picture to upload:
vi-notebook:/var/lib/mediawiki1.7# php maintenance/importImages.php /store/wiki/absurd_pic jpg Import Images Warning: Invalid argument supplied for foreach() in /usr/share/mediawiki1.7/maintenance/importImages.php on line 34
Incorrect folder path
t@f66677:~/public_html/dead.com/public/w/maintenance$ php importImages.php /m gif bmp PNG JPG GIF BMP Import Images No suitable files could be found for import.
Usually this is because the path to the folder is incorrect.
Upload failed error
login as: ideakwty
|"No suitable files could be found for import." error when user does not have the privileges to upload the pictures|
The following error can be caused by two issues:
- chmod permissions needs to be changed, and/or
- user does not have the privileges to upload the pictures
Problem 1: chmod permissions needs to be changed
- Solution: Change chmod settings
- chmod four folders to 777:
- images/thumb and
- If it hasn't already been done, in LocalSettings.php, uncomment the line
$wgHashedUploadDirectory = false;by removing the # in front of the line.
Problem 2: user does not have the privileges to upload the pictures
Skipping existing pictures
By default, ImportImages.php will not overwrite pictures. If a picture with the same name already exists on the wiki, you will get this error:
php importImages.php /home gif bmp PNG JPG GIF BMP Import Images Dadtest.jpg exists, skipping Found: 1 Skipped: 1
To overwrite any images type:
php importImages.php /home gif bmp PNG JPG GIF BMP --overwrite
The result will be:
Import Images Dadtest.jpg exists, overwriting...done. Found: 1 Overwritten: 1