2003-05-22 14:12:53 +02:00
< ? php
2004-10-21 17:16:03 +02:00
require_once ( 'admin.php' );
2004-04-23 08:46:53 +02:00
2004-02-05 15:28:02 +01:00
$title = 'Upload Image or File' ;
2003-05-22 14:12:53 +02:00
2004-02-05 15:28:02 +01:00
require_once ( 'admin-header.php' );
2003-05-22 14:12:53 +02:00
2004-03-01 07:13:32 +01:00
if ( ! get_settings ( 'use_fileupload' )) //Checks if file upload is enabled in the config
2004-04-23 08:46:53 +02:00
die ( __ ( " The admin disabled this function " ));
2003-05-22 14:12:53 +02:00
2005-07-17 21:29:55 +02:00
if ( ! current_user_can ( 'upload_files' ) )
2005-02-14 08:13:38 +01:00
die ( __ ( " You are not allowed to upload files " ));
2004-04-12 19:25:59 +02:00
$allowed_types = explode ( ' ' , trim ( strtolower ( get_settings ( 'fileupload_allowedtypes' ))));
2003-10-17 21:26:05 +02:00
2004-04-21 00:56:47 +02:00
if ( $_POST [ 'submit' ]) {
2004-02-05 15:28:02 +01:00
$action = 'upload' ;
} else {
$action = '' ;
2003-05-22 14:12:53 +02:00
}
2004-03-01 07:13:32 +01:00
if ( ! is_writable ( get_settings ( 'fileupload_realpath' )))
2004-02-05 15:28:02 +01:00
$action = 'not-writable' ;
2003-10-17 21:26:05 +02:00
?>
2003-05-22 14:12:53 +02:00
2004-02-05 15:28:02 +01:00
< div class = " wrap " >
2003-05-22 14:12:53 +02:00
2004-02-05 15:28:02 +01:00
< ? php
switch ( $action ) {
case 'not-writable' :
2003-05-22 14:12:53 +02:00
?>
2004-04-23 08:46:53 +02:00
< p >< ? php printf ( __ ( " It doesn't look like you can use the file upload feature at this time because the directory you have specified (<code>%s</code>) doesn't appear to be writable by WordPress. Check the permissions on the directory and for typos. " ), get_settings ( 'fileupload_realpath' )) ?> </p>
2003-05-22 14:12:53 +02:00
2004-02-05 15:28:02 +01:00
< ? php
break ;
case '' :
foreach ( $allowed_types as $type ) {
$type_tags [] = " <code> $type </code> " ;
}
$i = implode ( ', ' , $type_tags );
?>
2004-04-24 02:16:27 +02:00
< p >< ? php printf ( __ ( 'You can upload files with the extension %1$s as long as they are no larger than %2$s <abbr title="Kilobytes">KB</abbr>. If you’re an admin you can configure these values under <a href="%3$s">options</a>.' ), $i , get_settings ( 'fileupload_maxk' ), 'options-misc.php' ) ?> </p>
2004-02-05 15:28:02 +01:00
< form action = " upload.php " method = " post " enctype = " multipart/form-data " >
< p >
2004-04-23 08:46:53 +02:00
< label for = " img1 " >< ? php _e ( 'File:' ) ?> </label>
2004-02-05 15:28:02 +01:00
< br />
2004-03-01 07:13:32 +01:00
< input type = " hidden " name = " MAX_FILE_SIZE " value = " <?php echo get_settings('fileupload_maxk') * 1024 ?> " />
2004-02-05 15:28:02 +01:00
< input type = " file " name = " img1 " id = " img1 " size = " 35 " class = " uploadform " /></ p >
< p >
2004-04-23 08:46:53 +02:00
< label for = " imgdesc " >< ? php _e ( 'Description:' ) ?> </label><br />
2004-02-05 15:28:02 +01:00
< input type = " text " name = " imgdesc " id = " imgdesc " size = " 30 " class = " uploadform " />
</ p >
2004-04-23 08:46:53 +02:00
< p >< ? php _e ( 'Create a thumbnail?' ) ?> </p>
2004-02-05 15:28:02 +01:00
< p >
< label for = " thumbsize_no " >
< input type = " radio " name = " thumbsize " value = " none " checked = " checked " id = " thumbsize_no " />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'No thanks' ) ?> </label>
2004-02-05 15:28:02 +01:00
< br />
< label for = " thumbsize_small " >
< input type = " radio " name = " thumbsize " value = " small " id = " thumbsize_small " />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'Small (200px largest side)' ) ?> </label>
2004-02-05 15:28:02 +01:00
< br />
< label for = " thumbsize_large " >
< input type = " radio " name = " thumbsize " value = " large " id = " thumbsize_large " />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'Large (400px largest side)' ) ?> </label>
2004-02-05 15:28:02 +01:00
< br />
< label for = " thumbsize_custom " >
< input type = " radio " name = " thumbsize " value = " custom " id = " thumbsize_custom " />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'Custom size' ) ?> </label>
2004-02-05 15:28:02 +01:00
:
< input type = " text " name = " imgthumbsizecustom " size = " 4 " />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'px (largest side)' ) ?> </p>
< p >< input type = " submit " name = " submit " value = " <?php _e('Upload File') ?> " /></ p >
2004-02-05 15:28:02 +01:00
</ form >
</ div >< ? php
break ;
case 'upload' :
2003-05-22 14:12:53 +02:00
2004-11-19 00:55:08 +01:00
$imgalt = basename ( ( isset ( $_POST [ 'imgalt' ])) ? $_POST [ 'imgalt' ] : '' );
2003-05-22 14:12:53 +02:00
2004-11-19 00:55:08 +01:00
$img1_name = ( strlen ( $imgalt )) ? $imgalt : basename ( $_FILES [ 'img1' ][ 'name' ] );
2005-02-14 08:13:38 +01:00
$img1_name = preg_replace ( '/[^a-z0-9_.]/i' , '' , $img1_name );
2005-02-14 08:06:52 +01:00
$img1_size = $_POST [ 'img1_size' ] ? intval ( $_POST [ 'img1_size' ]) : intval ( $_FILES [ 'img1' ][ 'size' ]);
2003-05-22 14:12:53 +02:00
2004-11-19 00:55:08 +01:00
$img1_type = ( strlen ( $imgalt )) ? $_POST [ 'img1_type' ] : $_FILES [ 'img1' ][ 'type' ];
2005-02-14 08:13:38 +01:00
$imgdesc = htmlentities2 ( $_POST [ 'imgdesc' ]);
2003-05-22 14:12:53 +02:00
2004-11-19 00:55:08 +01:00
$pi = pathinfo ( $img1_name );
$imgtype = strtolower ( $pi [ 'extension' ]);
2004-02-05 15:28:02 +01:00
2004-11-19 00:55:08 +01:00
if ( in_array ( $imgtype , $allowed_types ) == false )
die ( sprintf ( __ ( 'File %1$s of type %2$s is not allowed.' ) , $img1_name , $imgtype ));
2004-02-05 15:28:02 +01:00
if ( strlen ( $imgalt )) {
2004-03-01 07:13:32 +01:00
$pathtofile = get_settings ( 'fileupload_realpath' ) . " / " . $imgalt ;
2004-10-08 16:59:52 +02:00
$img1 = $_POST [ 'img1' ];
2004-02-05 15:28:02 +01:00
} else {
2004-03-01 07:13:32 +01:00
$pathtofile = get_settings ( 'fileupload_realpath' ) . " / " . $img1_name ;
2004-10-02 02:46:30 +02:00
$img1 = $_FILES [ 'img1' ][ 'tmp_name' ];
2004-02-05 15:28:02 +01:00
}
// makes sure not to upload duplicates, rename duplicates
$i = 1 ;
$pathtofile2 = $pathtofile ;
$tmppathtofile = $pathtofile2 ;
$img2_name = $img1_name ;
2005-01-31 11:24:05 +01:00
while ( file_exists ( $pathtofile2 ) ) {
$pos = strpos ( strtolower ( $tmppathtofile ), '.' . trim ( $imgtype ) );
2004-02-05 15:28:02 +01:00
$pathtofile_start = substr ( $tmppathtofile , 0 , $pos );
$pathtofile2 = $pathtofile_start . '_' . zeroise ( $i ++ , 2 ) . '.' . trim ( $imgtype );
$img2_name = explode ( '/' , $pathtofile2 );
$img2_name = $img2_name [ count ( $img2_name ) - 1 ];
}
if ( file_exists ( $pathtofile ) && ! strlen ( $imgalt )) {
2004-03-01 07:13:32 +01:00
$i = explode ( ' ' , get_settings ( 'fileupload_allowedtypes' ));
$i = implode ( ', ' , array_slice ( $i , 1 , count ( $i ) - 2 ));
2004-02-05 15:28:02 +01:00
$moved = move_uploaded_file ( $img1 , $pathtofile2 );
// if move_uploaded_file() fails, try copy()
if ( ! $moved ) {
$moved = copy ( $img1 , $pathtofile2 );
}
if ( ! $moved ) {
2004-04-23 08:46:53 +02:00
die ( sprintf ( __ ( " Couldn't upload your file to %s. " ), $pathtofile2 ));
2004-02-05 15:28:02 +01:00
} else {
2004-04-18 09:10:44 +02:00
chmod ( $pathtofile2 , 0666 );
2004-02-05 15:28:02 +01:00
@ unlink ( $img1 );
}
2004-04-18 09:10:44 +02:00
//
2004-02-05 15:28:02 +01:00
// duplicate-renaming function contributed by Gary Lawrence Murphy
?>
2004-04-23 08:46:53 +02:00
< p >< strong >< ? php __ ( 'Duplicate File?' ) ?> </strong></p>
< p >< b >< em >< ? php printf ( __ ( " The filename '%s' already exists! " ), $img1_name ); ?> </em></b></p>
2004-04-24 02:16:27 +02:00
< p > < ? php printf ( __ ( " Filename '%1 \$ s' moved to '%2 \$ s' " ), $img1 , " $pathtofile2 - $img2_name " ) ?> </p>
2004-04-23 08:46:53 +02:00
< p >< ? php _e ( 'Confirm or rename:' ) ?> </p>
2004-02-05 15:28:02 +01:00
< form action = " upload.php " method = " post " enctype = " multipart/form-data " >
2004-03-01 07:13:32 +01:00
< input type = " hidden " name = " MAX_FILE_SIZE " value = " <?php echo get_settings('fileupload_maxk') *1024 ?> " />
2004-02-05 15:28:02 +01:00
< input type = " hidden " name = " img1_type " value = " <?php echo $img1_type ;?> " />
< input type = " hidden " name = " img1_name " value = " <?php echo $img2_name ;?> " />
< input type = " hidden " name = " img1_size " value = " <?php echo $img1_size ;?> " />
< input type = " hidden " name = " img1 " value = " <?php echo $pathtofile2 ;?> " />
< input type = " hidden " name = " thumbsize " value = " <?php echo $_REQUEST['thumbsize'] ;?> " />
< input type = " hidden " name = " imgthumbsizecustom " value = " <?php echo $_REQUEST['imgthumbsizecustom'] ;?> " />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'Alternate name:' ) ?> <br /><input type="text" name="imgalt" size="30" class="uploadform" value="<?php echo $img2_name;?>" /><br />
2004-02-05 15:28:02 +01:00
< br />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'Description:' ) ?> <br /><input type="text" name="imgdesc" size="30" class="uploadform" value="<?php echo $imgdesc;?>" />
2004-02-05 15:28:02 +01:00
< br />
2004-04-23 08:46:53 +02:00
< input type = " submit " name = " submit " value = " <?php _e('Rename') ?> " class = " search " />
2004-02-05 15:28:02 +01:00
</ form >
</ div >
< ? php
2004-10-08 16:59:52 +02:00
2004-02-05 15:28:02 +01:00
require ( 'admin-footer.php' );
die ();
}
if ( ! strlen ( $imgalt )) {
@ $moved = move_uploaded_file ( $img1 , $pathtofile ); //Path to your images directory, chmod the dir to 777
// move_uploaded_file() can fail if open_basedir in PHP.INI doesn't
// include your tmp directory. Try copy instead?
2004-04-18 09:10:44 +02:00
if ( ! $moved ) {
2004-02-05 15:28:02 +01:00
$moved = copy ( $img1 , $pathtofile );
}
// Still couldn't get it. Give up.
2004-08-30 10:16:55 +02:00
if ( ! $moved ) {
2004-04-23 08:46:53 +02:00
die ( sprintf ( __ ( " Couldn't upload your file to %s. " ), $pathtofile ));
2004-02-05 15:28:02 +01:00
} else {
2004-04-18 09:10:44 +02:00
chmod ( $pathtofile , 0666 );
2004-02-05 15:28:02 +01:00
@ unlink ( $img1 );
}
} else {
rename ( $img1 , $pathtofile )
2004-04-23 08:46:53 +02:00
or die ( sprintf ( __ ( " Couldn't upload your file to %s. " ), $pathtofile ));
2004-02-05 15:28:02 +01:00
}
2004-04-21 00:56:47 +02:00
if ( $_POST [ 'thumbsize' ] != 'none' ) {
if ( $_POST [ 'thumbsize' ] == 'small' ) {
2004-02-05 15:28:02 +01:00
$max_side = 200 ;
}
2004-04-21 00:56:47 +02:00
elseif ( $_POST [ 'thumbsize' ] == 'large' ) {
2004-02-05 15:28:02 +01:00
$max_side = 400 ;
}
2004-04-21 00:56:47 +02:00
elseif ( $_POST [ 'thumbsize' ] == 'custom' ) {
2004-10-02 02:46:30 +02:00
$max_side = intval ( $_POST [ 'imgthumbsizecustom' ]);
2004-02-05 15:28:02 +01:00
}
$result = wp_create_thumbnail ( $pathtofile , $max_side , NULL );
if ( $result != 1 ) {
print $result ;
}
}
2003-05-22 14:12:53 +02:00
2005-02-12 02:50:27 +01:00
if ( ereg ( 'image/' , $img1_type ) )
2005-02-16 00:25:59 +01:00
$piece_of_code = " <img src=' " . get_settings ( 'fileupload_url' ) . " / $img1_name ' alt=' $imgdesc ' /> " ;
2005-02-12 02:50:27 +01:00
else
$piece_of_code = " <a href=' " . get_settings ( 'fileupload_url' ) . " / $img1_name ' title=' $imgdesc '> $imgdesc </a> " ;
2003-05-22 14:12:53 +02:00
2005-02-12 02:50:27 +01:00
$piece_of_code = htmlspecialchars ( $piece_of_code );
2003-05-22 14:12:53 +02:00
?>
2004-04-23 08:46:53 +02:00
< h3 >< ? php _e ( 'File uploaded!' ) ?> </h3>
< p >< ? php printf ( __ ( " Your file <code>%s</code> was uploaded successfully! " ), $img1_name ); ?> </p>
< p >< ? php _e ( 'Here’s the code to display it:' ) ?> </p>
2004-02-05 15:28:02 +01:00
< p >< code >< ? php echo $piece_of_code ; ?> </code>
2003-05-22 14:12:53 +02:00
</ p >
2004-04-23 08:46:53 +02:00
< p >< strong >< ? php _e ( 'Image Details' ) ?> </strong>: <br />
2005-08-10 08:50:20 +02:00
< ? php _e ( 'Name:' ); ?>
2004-02-05 15:28:02 +01:00
< ? php echo $img1_name ; ?>
2003-05-22 14:12:53 +02:00
< br />
2004-04-23 08:46:53 +02:00
< ? php _e ( 'Size:' ) ?>
< ? php echo round ( $img1_size / 1024 , 2 ); ?> <?php _e('<abbr title="Kilobyte">KB</abbr>') ?><br />
< ? php _e ( 'Type:' ) ?>
2004-02-05 15:28:02 +01:00
< ? php echo $img1_type ; ?>
2003-05-22 14:12:53 +02:00
</ p >
2004-02-05 15:28:02 +01:00
</ div >
2004-04-23 08:46:53 +02:00
< p >< a href = " upload.php " >< ? php _e ( 'Upload another' ) ?> </a></p>
2004-02-05 15:28:02 +01:00
< ? php
break ;
}
include ( 'admin-footer.php' );
2005-02-14 08:13:38 +01:00
?>