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
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;

?>

Link to comment
Share on other sites

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');

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.