RE: [PHP] Re: Upload and resize file
| From: | Beauford | Date: | Thu, 23 Aug 2007 19:56:45 +0000 |
| Subject: | RE: [PHP] Re: Upload and resize file | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-261188@lists.php.net to get a copy of this message | ||
Been finding that out about the script. I have downloaded another and it
works great. I just have to do some tweaking to suit my needs, but bottom
line is it works.
Thx
> -----Original Message-----
> From: Børge Holen [mailto:borge@arivene.net]
> Sent: August 23, 2007 3:30 PM
> To: php-general@lists.php.net
> Subject: Re: [PHP] Re: Upload and resize file
>
> On Thursday 23 August 2007 14:50, Al wrote:
> > Suggest you find another script. That one is weird and not
> simple PHP
> > code, which will do your task easily.
>
> just my thoughts to
>
> >
> > Beauford wrote:
> > > I downloaded this 'upload and resize image' script, and
> since I have
> > > no idea what I am looking at as this is something I have
> never done,
> > > could someone have a look and see what the problem might
> be. I've
> > > been searching around but haven't come across anything that makes
> > > any sense yet.
> > >
> > > When a picture needs to be resized I am getting the
> following error.
> > > If it is the same size or under I don't get this error.
> > >
> > > Warning: unlink() [function.unlink]: No such file or directory in
> > > /usr/local/apache/htdocs/website/upload.php on line 92
> > >
> > > The full code is below.
> > >
> > > Thanks
> > >
> > > ------------------------------------------------------------------
> > >
> > > <html>
> > >
> > > <head>
> > > <title>web.blazonry : PHP : Upload and Resize an Image</title>
> > >
> > > <?php
> > >
> > > if ($_SERVER['REQUEST_METHOD'] == "POST") {
> > >
> > > /* SUBMITTED INFORMATION - use what you need
> > > * temporary filename (pointer): $imgfile
> > > * original filename : $imgfile_name
> > > * size of uploaded file : $imgfile_size
> > > * mime-type of uploaded file : $imgfile_type
> > > */
> > >
> > > /*== upload directory where the file will be stored
> > > relative to where script is run ==*/
> > >
> > > $uploaddir = "images";
> > >
> > >
> > > /*== get file extension (fn at bottom of script) ==*/
> > > /*== checks to see if image file, if not do not allow
> upload ==*/
> > > $pext = getFileExtension($imgfile_name);
> > > $pext = strtolower($pext);
> > > if (($pext != "jpg") && ($pext != "jpeg"))
> > > {
> > > print "<h1>ERROR</h1>Image Extension
> > > Unknown.<br>";
> > > print "<p>Please upload only a JPEG image with
> the extension
> > > .jpg or .jpeg ONLY<br><br>";
> > > print "The file you uploaded had the following extension:
> > > $pext</p>\n";
> > >
> > > /*== delete uploaded file ==*/
> > > unlink($imgfile);
> > > exit();
> > > }
> > >
> > >
> > > //-- RE-SIZING UPLOADED IMAGE
> > >
> > > /*== only resize if the image is larger than 250 x 200 ==*/
> > > $imgsize = GetImageSize($imgfile);
> > >
> > > /*== check size 0=width, 1=height ==*/
> > > if (($imgsize[0] > 250) || ($imgsize[1] > 200))
> > > {
> > > /*== temp image file -- use "tempnam()" to
> generate the temp
> > > file name. This is done so if multiple
> people access the
> > > script at once they won't ruin each other's
> temp file ==*/
> > > $tmpimg = tempnam("/tmp", "MKUP");
> > >
> > > /*== RESIZE PROCESS
> > > 1. decompress jpeg image to pnm file (a raw
> image type)
> > > 2. scale pnm image
> > > 3. compress pnm file to jpeg image
> > > ==*/
> > >
> > > /*== Step 1: djpeg decompresses jpeg to pnm ==*/
> > > system("djpeg $imgfile >$tmpimg");
> > >
> > >
> > > /*== Steps 2&3: scale image using pnmscale and then
> > > pipe into cjpeg to output jpeg file ==*/
> > > system("pnmscale -xy 250 200 $tmpimg | cjpeg
> -smoo 10 -qual
> > > 50
> > >
> > >> $imgfile");
> > >
> > > /*== remove temp image ==*/
> > > unlink($tmpimg);
> > >
> > > }
> > >
> > > /*== setup final file location and name ==*/
> > > /*== change spaces to underscores in filename ==*/
> > > $final_filename = str_replace(" ", "_", $imgfile_name);
> > > $newfile = $uploaddir . "/$final_filename";
> > >
> > > /*== do extra security check to prevent malicious abuse==*/
> > > if (is_uploaded_file($imgfile))
> > > {
> > >
> > > /*== move file to proper directory ==*/
> > > if (!copy($imgfile,"$newfile"))
> > > {
> > > /*== if an error occurs the file could not
> > > be written, read or possibly does not exist ==*/
> > > print "Error Uploading File.";
> > > exit();
> > > }
> > > }
> > >
> > > /*== delete the temporary uploaded file ==*/
> > > unlink($imgfile);
> > >
> > >
> > > print("<img src=\"images\\$final_filename\">");
> > >
> > > /*== DO WHATEVER ELSE YOU WANT
> > > SUCH AS INSERT DATA INTO A DATABASE ==*/
> > >
> > > }
> > > ?>
> > >
> > >
> > > </head>
> > > <body bgcolor="#FFFFFF">
> > >
> > > <h2>Upload and Resize an Image</h2>
> > >
> > > <form action="<?php echo $_SERVER['PHP_SELF']; ?>"
> method="POST"
> > > enctype="multipart/form-data">
> > > <input type="hidden" name="MAX_FILE_SIZE"
> > > value="50000">
> > >
> > > <p>Upload Image: <input type="file"
> > > name="imgfile"><br>
> > > <font size="1">Click browse to upload a local
> > > file</font><br>
> > > <br>
> > > <input type="submit" value="Upload Image">
> > > </form>
> > >
> > > </body>
> > > </html>
> > >
> > > <?php
> > > /*== FUNCTIONS ==*/
> > >
> > > function getFileExtension($str) {
> > >
> > > $i = strrpos($str,".");
> > > if (!$i) { return ""; }
> > >
> > > $l = strlen($str) - $i;
> > > $ext = substr($str,$i+1,$l);
> > >
> > > return $ext;
> > >
> > > }
> > > ?>
>
> --
> ---
> Børge
> http://www.arivene.net
> ---
>
> --
> PHP General Mailing List (http://www.php.net/) To
> unsubscribe, visit: http://www.php.net/unsub.php
>
>
>