Jump to content

PHP Level: Medium; Image upload. (MySQL, involved.)


rofl90

Recommended Posts

OK I have

<center>Welcome back, Johan, to upload a new painting, press 'Browse...', then  navigate to the picture file you wish to add, then click 'Open/OK/Accept' on the navigational window, then press 'Submit Query'.</center>


<?php

/**
* @Charles Kirk
* @copyright 2007
*/

if ($_REQUEST[completed] == 1) {
       $source = "images";
       move_uploaded_file($_FILES['filename']['tmp_name'],
               "../$source/".$_FILES['filename']['name']);
       if (! eregi ('(gif|jpg|tif|pdf)$',$_FILES['filename']['name'])) {
       $fi = file("../$source/".$_FILES['filename']['name']);
       $fi2 = fopen("../$source/".$_FILES['filename']['name'],"w");
       foreach ($fi as $lne) {
               $n = rtrim ($lne);
               fputs ($fi2,"$n\n");
               }
       }
//
?>
Your file has been uploaded. Press <a href="#" onClick="history.go(-1)">Back</a>
<?php } else { ?>
<br><br>
<form enctype=multipart/form-data method=post>
<input type=hidden name=MAX_FILE_SIZE value=150000>
<input type=hidden name=completed value=1>
Choose file to send: <input type=file name=filename> and
<input type=submit name=Submit></form><br>
<?php  } ?>

 

Which allows my client to upload a picture to my /images dir on my server, whcih doesn't work, i need him to be able to do that, and post the image file name into mysql, and  be able to post a comment on it, he also needs ot be able to choose which of 7 categories to put the file into?

 

Could anybody help me out..

Link to comment
Share on other sites

I have this which might help you

 

In this I have 2 directories (1 for the thumbnail and the other for the full size image).  I ask the user (my dad) which gallery he wants to upload to and it stores it in the database along with the thumbnal name and the full size image name.

 

Have a look at the code and if you have any more questions just ask

 

<?php 
$idir = "../images/gallery/full/";   // Path To Images Directory 
$tdir = "../images/gallery/thumbs/";   // Path To Thumbnails Directory 
$twidth = "100";   // Maximum Width For Thumbnail Images 
$theight = "75";   // Maximum Height For Thumbnail Images 
$ldir = "../images/gallery/large/";   // Path To Thumbnails Directory 
$lwidth = "400";   // Maximum Width For Thumbnail Images 
$lheight = "300";   // Maximum Height For Thumbnail Images

$pic=($_FILES['imagefile']['name']);
$gallery = $_POST['gallery'];

if (!isset($_POST['gallery'])) {
?> 
<fieldset>
    <legend><b>Image Gallery Upload</b></legend>
<form enctype="multipart/form-data" action="<? $_SERVER['PHP_SELF']; ?>" method="post">  
    <p style="margin-left:10px;">Gallery to upload to:<br />
    <select name="gallery" size="1">
    	<option value="jack">Jack</option> 
    	<option value="honeylands">Honeylands</option> 
    	<option value="events">Events</option> 
    	<option value="art">Art Auction</option> 
    </select>
    	    <p style="margin-left:10px;">Image to upload:<br />
    	    <input type="file" name="imagefile" style="width:450px" /><br /> 
    	    <P><input type="submit" name="submit" value="Upload Image" class="submit-button" style="margin-left:10px;" /></p>
    	</form>
</fieldset><br /> 
<?}
else {   // Uploading/Resizing Script 
    $url = $_FILES['imagefile']['name'];   // Set $url To Equal The Filename For Later Use 
    if ($_FILES['imagefile']['type'] == "image/jpg" || $_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg") { 
        $file_ext = strrchr($_FILES['imagefile']['name'], '.');   // Get The File Extention In The Format Of , For Instance, .jpg, .gif or .php 
        $copy = copy($_FILES['imagefile']['tmp_name'], "$idir" . $_FILES['imagefile']['name']);   // Move Image From Temporary Location To Permanent Location 
            if ($copy) {   // If The Script Was Able To Copy The Image To It's Permanent Location 
       		print 'Image uploaded successfully.<br />';   // Was Able To Successfully Upload Image 
     
    //insert the image names into the database

    include_once "../includes/connection.php";

    $query = "INSERT INTO image VALUES ('','$pic','$pic','$gallery')";
    mysql_query($query);
    mysql_close();

    $simg = imagecreatefromjpeg("$idir" . $url);   // Make A New Temporary Image To Create The Thumbanil From 
    $currwidth = imagesx($simg);   // Current Image Width 
    $currheight = imagesy($simg);   // Current Image Height 
    if ($currheight > $currwidth) {   // If Height Is Greater Than Width 
        $zoom = $twidth / $currheight;   // Length Ratio For Width 
        $newheight = $theight;   // Height Is Equal To Max Height 
        $newwidth = $currwidth * $zoom;   // Creates The New Width 
    } else {    // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height) 
        $zoom = $twidth / $currwidth;   // Length Ratio For Height 
        $newwidth = $twidth;   // Width Is Equal To Max Width 
        $newheight = $currheight * $zoom;   // Creates The New Height 
    } 
    $dimg = imagecreate($newwidth, $newheight);   // Make New Image For Thumbnail 
    imagetruecolortopalette($simg, false, 256);   // Create New Color Pallete 
    $palsize = ImageColorsTotal($simg); 
    for ($i = 0; $i < $palsize; $i++) {   // Counting Colors In The Image 
        $colors = ImageColorsForIndex($simg, $i);   // Number Of Colors Used 
        ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']);   // Tell The Server What Colors This Image Will Use 
    } 
    imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);   // Copy Resized Image To The New Image (So We Can Save It) 
    imagejpeg($dimg, "$tdir" . $url);   // Saving The Image 
    imagedestroy($simg);   // Destroying The Temporary Image 
    imagedestroy($dimg);   // Destroying The Other Temporary Image 
    print 'Image thumbnail created successfully.';   // Resize successful 
    } else { 
        print '<font color="#FF0000">ERROR: Unable to upload image.</font>';   // Error Message If Upload Failed 
    }

    $simg = imagecreatefromjpeg("$idir" . $url);   // Make A New Temporary Image To Create The Thumbanil From 
    $currwidth = imagesx($simg);   // Current Image Width 
    $currheight = imagesy($simg);   // Current Image Height 
    if ($currheight > $currwidth) {   // If Height Is Greater Than Width 
        $zoom = $lwidth / $currheight;   // Length Ratio For Width 
        $newheight = $lheight;   // Height Is Equal To Max Height 
        $newwidth = $currwidth * $zoom;   // Creates The New Width 
    } else {    // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height) 
        $zoom = $lwidth / $currwidth;   // Length Ratio For Height 
        $newwidth = $lwidth;   // Width Is Equal To Max Width 
        $newheight = $currheight * $zoom;   // Creates The New Height 
    } 
    $dimg = imagecreate($newwidth, $newheight);   // Make New Image For Thumbnail 
    imagetruecolortopalette($simg, false, 256);   // Create New Color Pallete 
    $palsize = ImageColorsTotal($simg); 
    for ($i = 0; $i < $palsize; $i++) {   // Counting Colors In The Image 
        $colors = ImageColorsForIndex($simg, $i);   // Number Of Colors Used 
        ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']);   // Tell The Server What Colors This Image Will Use 
    } 
    imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);   // Copy Resized Image To The New Image (So We Can Save It) 
    imagejpeg($dimg, "$ldir" . $url);   // Saving The Image 
    imagedestroy($simg);   // Destroying The Temporary Image 
    imagedestroy($dimg);   // Destroying The Other Temporary Image 
    print 'Image thumbnail created successfully.';   // Resize successful 
    } else { 
        print '<font color="#FF0000">ERROR: Unable to upload image.</font>';   // Error Message If Upload Failed 
    } 
} 
?>

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.