6ac36de172
git-svn-id: https://develop.svn.wordpress.org/trunk@977 602fd350-edb4-49c9-b593-d223f7449a82
228 lines
7.9 KiB
PHP
228 lines
7.9 KiB
PHP
<?php
|
|
$title = 'Upload Image or File';
|
|
|
|
require_once('admin-header.php');
|
|
|
|
if ($user_level == 0) //Checks to see if user has logged in
|
|
die ("Cheatin' uh ?");
|
|
|
|
if (!get_settings('use_fileupload')) //Checks if file upload is enabled in the config
|
|
die ("The admin disabled this function");
|
|
|
|
$allowed_types = explode(' ', trim(get_settings('fileupload_allowedtypes')));
|
|
|
|
if ($HTTP_POST_VARS['submit']) {
|
|
$action = 'upload';
|
|
} else {
|
|
$action = '';
|
|
}
|
|
|
|
if (!is_writable(get_settings('fileupload_realpath')))
|
|
$action = 'not-writable';
|
|
?>
|
|
|
|
<div class="wrap">
|
|
|
|
<?php
|
|
switch ($action) {
|
|
case 'not-writable':
|
|
?>
|
|
<p>It doesn't look like you can use the file upload feature at this time because the directory you have specified (<code><?php echo get_settings('fileupload_realpath'); ?></code>) doesn't appear to be writable by WordPress. Check the permissions on the directory and for typos.</p>
|
|
|
|
<?php
|
|
break;
|
|
case '':
|
|
foreach ($allowed_types as $type) {
|
|
$type_tags[] = "<code>$type</code>";
|
|
}
|
|
$i = implode(', ', $type_tags);
|
|
?>
|
|
<p>You can upload files with the extension <?php echo $i ?> as long as they are no larger than <?php echo get_settings('fileupload_maxk'); ?> <abbr title="Kilobytes">KB</abbr>. If you’re an admin you can configure these values under <a href="options.php">options</a>.</p>
|
|
<form action="upload.php" method="post" enctype="multipart/form-data">
|
|
<p>
|
|
<label for="img1">File:</label>
|
|
<br />
|
|
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo get_settings('fileupload_maxk') * 1024 ?>" />
|
|
<input type="file" name="img1" id="img1" size="35" class="uploadform" /></p>
|
|
<p>
|
|
<label for="imgdesc">Description:</label><br />
|
|
<input type="text" name="imgdesc" id="imgdesc" size="30" class="uploadform" />
|
|
</p>
|
|
|
|
<p>Create a thumbnail?</p>
|
|
<p>
|
|
<label for="thumbsize_no">
|
|
<input type="radio" name="thumbsize" value="none" checked="checked" id="thumbsize_no" />
|
|
No thanks</label>
|
|
<br />
|
|
<label for="thumbsize_small">
|
|
<input type="radio" name="thumbsize" value="small" id="thumbsize_small" />
|
|
Small (200px largest side)</label>
|
|
<br />
|
|
<label for="thumbsize_large">
|
|
<input type="radio" name="thumbsize" value="large" id="thumbsize_large" />
|
|
Large (400px largest side)</label>
|
|
<br />
|
|
<label for="thumbsize_custom">
|
|
<input type="radio" name="thumbsize" value="custom" id="thumbsize_custom" />
|
|
Custom size</label>
|
|
:
|
|
<input type="text" name="imgthumbsizecustom" size="4" />
|
|
px (largest side) </p>
|
|
<p><input type="submit" name="submit" value="Upload File" /></p>
|
|
</form>
|
|
</div><?php
|
|
break;
|
|
case 'upload':
|
|
?>
|
|
|
|
<?php //Makes sure they choose a file
|
|
|
|
//print_r($HTTP_POST_FILES);
|
|
//die();
|
|
|
|
|
|
$imgalt = (isset($HTTP_POST_VARS['imgalt'])) ? $HTTP_POST_VARS['imgalt'] : $imgalt;
|
|
|
|
$img1_name = (strlen($imgalt)) ? $HTTP_POST_VARS['imgalt'] : $HTTP_POST_FILES['img1']['name'];
|
|
$img1_type = (strlen($imgalt)) ? $HTTP_POST_VARS['img1_type'] : $HTTP_POST_FILES['img1']['type'];
|
|
$imgdesc = str_replace('"', '&quot;', $HTTP_POST_VARS['imgdesc']);
|
|
|
|
$imgtype = explode(".",$img1_name);
|
|
$imgtype = $imgtype[count($imgtype)-1];
|
|
|
|
if (in_array($imgtype, $allowed_types) == false) {
|
|
die("File $img1_name of type $imgtype is not allowed.");
|
|
}
|
|
|
|
if (strlen($imgalt)) {
|
|
$pathtofile = get_settings('fileupload_realpath')."/".$imgalt;
|
|
$img1 = $HTTP_POST_VARS['img1'];
|
|
} else {
|
|
$pathtofile = get_settings('fileupload_realpath')."/".$img1_name;
|
|
$img1 = $HTTP_POST_FILES['img1']['tmp_name'];
|
|
}
|
|
|
|
// makes sure not to upload duplicates, rename duplicates
|
|
$i = 1;
|
|
$pathtofile2 = $pathtofile;
|
|
$tmppathtofile = $pathtofile2;
|
|
$img2_name = $img1_name;
|
|
|
|
while (file_exists($pathtofile2)) {
|
|
$pos = strpos($tmppathtofile, '.'.trim($imgtype));
|
|
$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)) {
|
|
$i = explode(' ', get_settings('fileupload_allowedtypes'));
|
|
$i = implode(', ',array_slice($i, 1, count($i)-2));
|
|
$moved = move_uploaded_file($img1, $pathtofile2);
|
|
// if move_uploaded_file() fails, try copy()
|
|
if (!$moved) {
|
|
$moved = copy($img1, $pathtofile2);
|
|
}
|
|
if (!$moved) {
|
|
die("Couldn't Upload Your File to $pathtofile2.");
|
|
} else {
|
|
@unlink($img1);
|
|
}
|
|
|
|
// duplicate-renaming function contributed by Gary Lawrence Murphy
|
|
?>
|
|
<p><strong>Duplicate File?</strong></p>
|
|
<p><b><em>The filename '<?php echo $img1_name; ?>' already exists!</em></b></p>
|
|
<p> filename '<?php echo $img1; ?>' moved to '<?php echo "$pathtofile2 - $img2_name"; ?>'</p>
|
|
<p>Confirm or rename:</p>
|
|
<form action="upload.php" method="post" enctype="multipart/form-data">
|
|
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo get_settings('fileupload_maxk') *1024 ?>" />
|
|
<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'];?>" />
|
|
Alternate name:<br /><input type="text" name="imgalt" size="30" class="uploadform" value="<?php echo $img2_name;?>" /><br />
|
|
<br />
|
|
Description:<br /><input type="text" name="imgdesc" size="30" class="uploadform" value="<?php echo $imgdesc;?>" />
|
|
<br />
|
|
<input type="submit" name="submit" value="Rename" class="search" />
|
|
</form>
|
|
</div>
|
|
<?php
|
|
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?
|
|
if(!moved) {
|
|
$moved = copy($img1, $pathtofile);
|
|
}
|
|
// Still couldn't get it. Give up.
|
|
if (!moved) {
|
|
die("Couldn't Upload Your File to $pathtofile.");
|
|
} else {
|
|
@unlink($img1);
|
|
}
|
|
|
|
} else {
|
|
rename($img1, $pathtofile)
|
|
or die("Couldn't Upload Your File to $pathtofile.");
|
|
}
|
|
|
|
if($HTTP_POST_VARS['thumbsize'] != 'none' ) {
|
|
if($HTTP_POST_VARS['thumbsize'] == 'small') {
|
|
$max_side = 200;
|
|
}
|
|
elseif($HTTP_POST_VARS['thumbsize'] == 'large') {
|
|
$max_side = 400;
|
|
}
|
|
elseif($HTTP_POST_VARS['thumbsize'] == 'custom') {
|
|
$max_side = $HTTP_POST_VARS['imgthumbsizecustom'];
|
|
}
|
|
|
|
$result = wp_create_thumbnail($pathtofile, $max_side, NULL);
|
|
if($result != 1) {
|
|
print $result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ( ereg('image/',$img1_type)) {
|
|
$piece_of_code = "<img src="". get_settings('fileupload_url') ."/$img1_name" alt="$imgdesc" />";
|
|
} else {
|
|
$piece_of_code = "<a href="". get_settings('fileupload_url') . "/$img1_name" title="$imgdesc" />$imgdesc</a>";
|
|
};
|
|
|
|
?>
|
|
|
|
<h3>File uploaded!</h3>
|
|
<p>Your file <code><?php echo $img1_name; ?></code> was uploaded successfully !</p>
|
|
<p>Here’s the code to display it:</p>
|
|
<p><code><?php echo $piece_of_code; ?></code>
|
|
</p>
|
|
<p><strong>Image Details</strong>: <br />
|
|
Name:
|
|
<?php echo $img1_name; ?>
|
|
<br />
|
|
Size:
|
|
<?php echo round($img1_size / 1024, 2); ?> <abbr title="Kilobyte">KB</abbr><br />
|
|
Type:
|
|
<?php echo $img1_type; ?>
|
|
</p>
|
|
</div>
|
|
<p><a href="upload.php">Start over</a>.</p>
|
|
<?php
|
|
break;
|
|
}
|
|
include('admin-footer.php');
|
|
?>
|