Smudly;10957402 wrote:How would I prevent this from happening?
<?php
# vars.php
/*
* Maximum Size an image may be
*
* $maxImageSize
*
* 51200 = 50 KB
* 512000 = 500 KB
*
*/
$maxImageSize = "2048000";
/*
* Path Information
*
* 1.) $file_dir
*
* 2.)$file_url
*
* 1.) full path ex /home/user/public_html/images
*
* 2.) full url ex http://www.site.com/images
*
* NO TRAILING SLASH!!
* Directory to move images to should be chmod 777
*
*/
$file_dir = "/home/paul/public_html/FREE/upload/images";
$file_url = "http://localhost/~paul/FREE/upload/images";
/*
* Defining accepted Image Types
*
* Add more like shown below:
*
* $acceptedImageType[] = "type";
*
*/
$acceptedImageType = array ( "pjpeg", "pjpg", "jpg", "jpeg", "gif", "png", "x-png", "PNG", "x-xbitmap" );
$acceptedImageType[] = "x-bmp";
/*
* Defining a Page's Own URL
*
* $self=$_SERVER['PHP_SELF'];
*
*/
$self=$_SERVER['PHP_SELF'];
?>
<?php
# upLoadForm.php
include("vars.php");
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
foreach( $_FILES as $file_name => $file_array )
{
echo "name: ".$file_array['name']."<br />\n";
echo "type: ".$file_array['type']."<br />\n";
echo "tmp_name: ".$file_array['tmp_name']."<br />\n";
echo "error: ".$file_array['error']."<br />\n";
echo "size: ".$file_array['size']."<br />\n";
// print_r($_FILES);
$tmp_name = $file_array['tmp_name'];
if( strstr( $tmp_name, "/tmp/" ) ) {
$tmp_name = str_replace("/tmp/", "", $tmp_name); # strip location from name
}
foreach ( $acceptedImageType as $acceptThis ) {
if(is_uploaded_file( $file_array['tmp_name'] ) && $file_array['type'] == "image/$acceptThis" ) {
$size=$file_array['size'];
if($size > $maxImageSize)
{
exit("The image is too large in size.");
}
move_uploaded_file( $file_array['tmp_name'], "$file_dir/".$tmp_name)
or die("Couldn't Copy");
echo "<img src=\"$file_url/".$tmp_name."\">";
echo "<br />\n\n";
} // End Foreach loop 2
} // End IF statement
} // End Foreach loop 1
?>
<form action="<?php echo "$self"; ?>" enctype="multipart/form-data" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo "$maxImageSize"; ?>">
<input type="file" name="fupload">
<br /><br />
<input type="submit" value="Upload">
<br />
</form>
SImple upload that I wrote a long while back, but it works! You can test to see if the type is what you would like. If it's anything else, it won't get moved after upload.