Jump to content

So I built this upload script....


iKris

Recommended Posts

But I need some help. I built part of this script off a tut, and did the rest myself however, I want it so it send the information into a database.

 

What I want is, once a user uploads an image, it can also be deleted by that user with the code given.

I have made the html, bbcode & direct link. I want an option for a box where it shows Delete link....

 

maniaupload.net

 

here's my FULL php upload script.

 

<?php

define ("MAX_SIZE","100000");

function getExtension($str) {

$i = strrpos($str,".");

if (!$i) { return ""; }

$l = strlen($str) - $i;

$ext = substr($str,$i+1,$l);

return $ext;

}

$errors=0;

if(isset($_POST['Submit']))

{

$image=stripslashes($_FILES['image']['name']);

if ($image)

{

$filename = stripslashes($_FILES['image']['name']);

$extension = getExtension($filename);

$extension = strtolower($extension);

if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "mov") && ($extension !="PNG") && ($extension !="bmp") && ($extension != "png") && ($extension != "gif"))

{

 

echo '<font color="red"><b>Extension not allowed</b></font><br>';

$errors=1;

}

else

{

$size=filesize($_FILES['image']['tmp_name']);

 

 

if ($size > MAX_SIZE*100000)

{

echo 'You have exceeded the size limit!';

$errors=1;

}

 

$image_name=time().'.'.$extension;

 

$newname="images/".$image_name;

 

$fullname="http://www.maniaupload.net/".$newname;

 

 

 

$copied = copy($_FILES['image']['tmp_name'], $newname);

if (!$copied)

{

echo '<font color=\"red\"><b>Upload Unsuccessful! Try Again?</b></font>';

$errors=1;

}}}}

 

if(isset($_POST['Submit']) && !$errors)

{

echo "File Uploaded Successfully! <br /><br /> <img src=\"$newname\" /> <br /><br />

 

<b>Direct Image Link:</b><br/><table width=\"338\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"Table1\">

<tr>

<td align=\"center\" valign=\"middle\"><textarea readonly name=\"message\" rows=\"1\" cols=\"50\">$fullname</textarea></td>

</tr>

</table></center><br>

 

<b>HTML Code:</b><br/><table width=\"338\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"Table1\">

<tr>

<td align=\"center\" valign=\"middle\"><textarea readonly name=\"message\" rows=\"1\" cols=\"50\">

<a href=\"$fullname\" target=\"_blank\"><img border=\"0\" src=\"$fullname\"></a>

</textarea></td>

</tr>

</table><br>

 

<b>BBCode <font color=\"red\">*NEW*</font></b><br>

<table width=\"338\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"Table1\">

<tr>

<td align=\"center\" valign=\"middle\">

<textarea readonly name=\"message\" rows=\"1\" cols=\"50\">

$fullname

</textarea></td>

</tr>

</table><br>

";

}

 

?>

I made the appropriate databases in the myadmin area, i just need a starting point to where it injects the image that was uploaded into the database. Basically the ID and all that crap.

 

I have more code but its not needed, its outside of the php tags. But can anyone help please. It's just adding a delete link so users can delete it if they choose.

 

I'm thinking it's MYSQL involved, but I'm still learning. Anyone know how I could do this?

 

Thanks.

Link to comment
https://forums.phpfreaks.com/topic/217401-so-i-built-this-upload-script/
Share on other sites

something like this would work

 

<?php

include("config.inc.php");



// initialization

$result_final = "";

$counter = 0;



// List of our known photo types

$known_photo_types = array( 

					'image/pjpeg' => 'jpg',

					'image/jpeg' => 'jpg',

					'image/gif' => 'gif',

					'image/bmp' => 'bmp',

					'image/x-png' => 'png'

				);



// GD Function List

$gd_function_suffix = array( 

					'image/pjpeg' => 'JPEG',

					'image/jpeg' => 'JPEG',

					'image/gif' => 'GIF',

					'image/bmp' => 'WBMP',

					'image/x-png' => 'PNG'

				);



// Fetch the photo array sent by preupload.php

$photos_uploaded = $_FILES['photo_filename'];



// Fetch the photo caption array

$photo_caption = $_POST['photo_caption'];



while( $counter <= count($photos_uploaded) )

{

	if($photos_uploaded['size'][$counter] > 0)

	{

		if(!array_key_exists($photos_uploaded['type'][$counter], $known_photo_types))

		{

			$result_final .= "File ".($counter+1)." is not a photo<br />";

		}

		else

		{

			mysql_query( "INSERT INTO gallery_photos(`photo_filename`, `photo_caption`, `photo_category`) VALUES('0', '".addslashes($photo_caption[$counter])."', '".addslashes($_POST['category'])."')" );

			$new_id = mysql_insert_id();

			$filetype = $photos_uploaded['type'][$counter];

			$extention = $known_photo_types[$filetype];

			$filename = $new_id.".".$extention;



			mysql_query( "UPDATE gallery_photos SET photo_filename='".addslashes($filename)."' WHERE photo_id='".addslashes($new_id)."'" );



			// Store the orignal file

			copy($photos_uploaded['tmp_name'][$counter], $images_dir."/".$filename);



			// Let's get the Thumbnail size

			$size = GetImageSize( $images_dir."/".$filename );

			if($size[0] > $size[1])

			{

				$thumbnail_width = 100;

				$thumbnail_height = (int)(100 * $size[1] / $size[0]);

			}

			else

			{

				$thumbnail_width = (int)(100 * $size[0] / $size[1]);

				$thumbnail_height = 100;

			}



			// Build Thumbnail with GD 1.x.x, you can use the other described methods too

			$function_suffix = $gd_function_suffix[$filetype];

			$function_to_read = "ImageCreateFrom".$function_suffix;

			$function_to_write = "Image".$function_suffix;



			// Read the source file

			$source_handle = $function_to_read ( $images_dir."/".$filename ); 



			if($source_handle)

			{

				// Let's create an blank image for the thumbnail

			     	$destination_handle = ImageCreate ( $thumbnail_width, $thumbnail_height );



				// Now we resize it

		      	ImageCopyResized( $destination_handle, $source_handle, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $size[0], $size[1] );

			}



			// Let's save the thumbnail

			$function_to_write( $destination_handle, $images_dir."/tb_".$filename );

			ImageDestroy($destination_handle );

			//



			$result_final .= "<img src='".$images_dir. "/tb_".$filename."' /> File ".($counter+1)." Added<br />";

		}

	}

$counter++;

}



// Print Result

echo <<<__HTML_END



<html>

<head>

<title>Photos uploaded</title>

</head>

<body>

$result_final

</body>

</html>



__HTML_END;

?>

Preupload.php

<?php  
include 'config.inc.php';  

// initialization  
$photo_upload_fields = '';  
$counter = 1;  

// If we want more fields, then use, preupload.php?number_of_fields=20  
$number_of_fields = (isset($_GET['number_of_fields'])) ?  
   (int)($_GET['number_of_fields']) : 5;  

// Firstly Lets build the Category List  
$result = mysql_query('SELECT category_id,category_name FROM gallery_category');  
while($row = mysql_fetch_array($result)) {  
   $photo_category_list .= <<<__HTML_END  
<option value="$row[0]">$row[1]</option>\n  
__HTML_END;  
}  
mysql_free_result( $result );    

// Lets build the Image Uploading fields  
while($counter <= $number_of_fields) {  
   $photo_upload_fields .= <<<__HTML_END  
<tr><td>  
Photo {$counter}:  
<input name="photo_filename[]"  
type="file" />  
</td></tr>  
<tr><td>  
Caption:  
<textarea name="photo_caption[]" cols="30"  
   rows="1"></textarea>  
</td></tr>  
__HTML_END;  
   $counter++;  
}  

// Final Output  
echo <<<__HTML_END  
<html>  
<head>  
<title>Lets upload Photos</title>  
</head>  
<body>  
<form enctype="multipart/form-data"  
action="upload.php" method="post"  
name="upload_form">  
<table width="90%" border="0"  
   align="center" style="width: 90%;">  
   <tr><td>  
     Select Category  
     <select name="category">  
     $photo_category_list  
     </select>  
   </td></tr>  
   <!—Insert the image fields here -->  
   $photo_upload_fields  
   <tr><td>  
     <input type="submit" name="submit"  
       value="Add Photos" />  
   </td></tr>  
</table>  
</form>  
</body>  
</html>  
__HTML_END;  
?>

 

viewgallery.php

<?php

include("config.inc.php");



// initialization

$result_array = array();

$counter = 0;



$cid = (int)($_GET['cid']);

$pid = (int)($_GET['pid']);



// Category Listing



if( empty($cid) && empty($pid) )

{

	$number_of_categories_in_row = 4;



	$result = mysql_query( "SELECT c.category_id,c.category_name,COUNT(photo_id)

					FROM gallery_category as c

					LEFT JOIN gallery_photos as p ON p.photo_category = c.category_id

					GROUP BY c.category_id" );

	while( $row = mysql_fetch_array( $result ) )

	{

		$result_array[] = "<a href='viewgallery.php?cid=".$row[0]."'>".$row[1]."</a> "."(".$row[2].")";

	}

	mysql_free_result( $result );	



	$result_final = "<tr>\n";



	foreach($result_array as $category_link)

	{

		if($counter == $number_of_categories_in_row)

		{	

			$counter = 1;

			$result_final .= "\n</tr>\n<tr>\n";

		}

		else

		$counter++;



		$result_final .= "\t<td>".$category_link."</td>\n";

	}



	if($counter)

	{

		if($number_of_categories_in_row-$counter)

		$result_final .= "\t<td colspan='".($number_of_categories_in_row-$counter)."'> </td>\n";



		$result_final .= "</tr>";

	}

}





// Thumbnail Listing



else if( $cid && empty( $pid ) )

{

	$number_of_thumbs_in_row = 5;



	$result = mysql_query( "SELECT photo_id,photo_caption,photo_filename FROM gallery_photos WHERE photo_category='".addslashes($cid)."'" );

	$nr = mysql_num_rows( $result );



	if( empty( $nr ) )

	{

		$result_final = "\t<tr><td>No Category found</td></tr>\n";

	}

	else

	{

		while( $row = mysql_fetch_array( $result ) )

		{

			$result_array[] = "<a href='viewgallery.php?cid=$cid&pid=".$row[0]."'><img src='".$images_dir."/tb_".$row[2]."' border='0' alt='".$row[1]."' /></a>";

		}

		mysql_free_result( $result );	



		$result_final = "<tr>\n";



		foreach($result_array as $thumbnail_link)

		{

			if($counter == $number_of_thumbs_in_row)

			{	

				$counter = 1;

				$result_final .= "\n</tr>\n<tr>\n";

			}

			else

			$counter++;



			$result_final .= "\t<td>".$thumbnail_link."</td>\n";

		}



		if($counter)

		{

			if($number_of_photos_in_row-$counter)

		$result_final .= "\t<td colspan='".($number_of_photos_in_row-$counter)."'> </td>\n";



			$result_final .= "</tr>";

		}

	}

}



// Full Size View of Photo

else if( $pid )

{

	$result = mysql_query( "SELECT photo_caption,photo_filename FROM gallery_photos WHERE photo_id='".addslashes($pid)."'" );

	list($photo_caption, $photo_filename) = mysql_fetch_array( $result );

	$nr = mysql_num_rows( $result );

	mysql_free_result( $result );	



	if( empty( $nr ) )

	{

		$result_final = "\t<tr><td>No Photo found</td></tr>\n";

	}

	else

	{

		$result = mysql_query( "SELECT category_name FROM gallery_category WHERE category_id='".addslashes($cid)."'" );

		list($category_name) = mysql_fetch_array( $result );

		mysql_free_result( $result );	



		$result_final .= "<tr>\n\t<td>

					<a href='viewgallery.php'>Categories</a> > 

					<a href='viewgallery.php?cid=$cid'>$category_name</a></td>\n</tr>\n";



		$result_final .= "<tr>\n\t<td align='center'>

				<br />

				<img src='".$images_dir."/".$photo_filename."' border='0' alt='".$photo_caption."' />

				<br />

				$photo_caption

				</td>

				</tr>";

	}

}



// Final Output

echo <<<__HTML_END



<html>

<head>

<title>Gallery View</title>

</head>

<body>

<table width='100%' border='0' align='center' style='width: 100%;'>

$result_final		

</table>

</body>

</html>



__HTML_END;

?>

config.inc.php

<?php

    // Before implementing this code, you should use your own username, password and database name values.



    $mysql_link = mysql_connect("localhost", "root", "root");   

    mysql_select_db("sitepoint") or die("Could not select database");



    $images_dir = "photos";

?>

gallery.sql

CREATE TABLE gallery_category (
category_id bigint(20) unsigned NOT NULL auto_increment,
category_name varchar(50) NOT NULL default '0',
PRIMARY KEY  (category_id),
KEY category_id (category_id)
) TYPE=MyISAM;

CREATE TABLE gallery_photos (
photo_id bigint(20) unsigned NOT NULL auto_increment,
photo_filename varchar(25),
photo_caption text,
photo_category bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY  (photo_id),
KEY photo_id (photo_id)
) TYPE=MyISAM;
INSERT INTO gallery_category(`category_name`) VALUES('My First Gallery');

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.