importimages.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 101 行

PHP
101
字号
<?php/** * Maintenance script to import one or more images from the local file system into * the wiki without using the web-based interface * * @package MediaWiki * @subpackage Maintenance * @author Rob Church <robchur@gmail.com> */require_once( 'commandLine.inc' );require_once( 'importImages.inc.php' );echo( "Import Images\n\n" );# Need a directory and at least one extensionif( count( $args ) > 1 ) {	$dir = array_shift( $args );	# Check the allowed extensions	while( $ext = array_shift( $args ) )		$exts[] = ltrim( $ext, '.' );			# Search the directory given and pull out suitable candidates	$files = findFiles( $dir, $exts );	# Set up a fake user for this operation	$wgUser = User::newFromName( 'Image import script' );	$wgUser->setLoaded( true );		# Batch "upload" operation	foreach( $files as $file ) {			$base = basename( $file );				# Validate a title		$title = Title::makeTitleSafe( NS_IMAGE, $base );		if( is_object( $title ) ) {						# Check existence			$image = new Image( $title );			if( !$image->exists() ) {							global $wgUploadDirectory;								# copy() doesn't create paths so if the hash path doesn't exist, we				# have to create it				makeHashPath( wfGetHashPath( $image->name ) );								# Stash the file				echo( "Saving {$base}..." );								if( copy( $file, $image->getFullPath() ) ) {									echo( "importing..." );									# Grab the metadata					$image->loadFromFile();										# Record the upload					if( $image->recordUpload( '', 'Importing image file' ) ) {											# We're done!						echo( "done.\n" );											} else {						echo( "failed.\n" );					}								} else {					echo( "failed.\n" );				}						} else {				echo( "{$base} could not be imported; a file with this name exists in the wiki\n" );			}				} else {			echo( "{$base} could not be imported; a valid title cannot be produced\n" );		}			}	} else {	showUsage();}exit();function showUsage( $reason = false ) {	if( $reason )		echo( $reason . "\n" );	echo( "USAGE: php importImages.php <dir> <ext1> <ext2>\n\n" );	echo( "<dir> : Path to the directory containing images to be imported\n" );	echo( "<ext1+> File extensions to import\n\n" );			exit();}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?