That's exactly what I did. I realized that yes, the variable is existing anyhow but saw that it gives a size, so now I made it so that if that file size is > 0, it'll processs. Works like a charm now, and I can tighten down all of my upload scripts!
Marian --- In [email protected], Chris Chapman <[EMAIL PROTECTED]> wrote: > > Marian - > > I think possibly the problem is that you are testing for the value of > the file uploaded. Correct me if I'm wrong but I *think* that the value > of a file field, i.e. if($_FILE[pageimage]) will give you an empty value > but not a *null* value - so an empty value is still valid - this is why > it evaluates as true - the variable exists, it's just empty. > > Here is a portion of a script I use for testing file uploads - i think > it will at least get you going in the right direction. I test on the > filename/type/sizes instead. Probably not the most graceful but works. ;-) > > ===================== > > /* upload files */ > $stamp = date("U"); > $error = "false"; > $uploadTemp = $_FILES['userfile']['tmp_name']; > > if($uploadTemp != "") { > > // test for images > if($_FILES['userfile']['type'] == "image/gif" || > $_FILES['userfile']['type'] == "image/jpeg" || > $_FILES['userfile']['type'] == "image/png") { > > if($_FILES['userfile']['type'] == "image/gif") { > $ext = ".gif"; > } > if($_FILES['userfile']['type'] == "image/jpeg") { > $ext = ".jpg"; > } > if($_FILES['userfile']['type'] == "image/png") { > $ext = ".png"; > } > > $imagehw = GetImageSize($uploadTemp); > $imagewidth = $imagehw[0]; > $imageheight = $imagehw[1]; > if($imagewidth > "640" || $imageheight > "480") { > $error = "true"; > $errorNo = 2; > } > > if($error == "false") { > $uploadFileName = $stamp.$ext; > } > } > > // else this is another type of file > else { > $error = "true"; > $errorNo = 1; > } > } > > else { > $uploadFileName = ""; > } > > if($error == "true") { > header("Location: somefile.php?error=$error&errorNo=$errorNo"); > } > > // now move the uploaded file > if($uploadFileName != "") { > $uploadFile = $filepath.$uploadFileName; > $upload = move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile); > } > > =========================== > > HTH. > > cc > > > Marian Briones wrote: > > Well, I latched onto the size value of the upload and figured okay, if > > the value is greater than 0, then process the file > > > > if ($_FILE['pageimage']['size']==0) > > { > > $processimage="no"; > > $imageinsert="$oldimage"; > > } > > else > > { > > $processimage="yes"; > > } > > > > But guess what? > > > > IT STILL DOESN'T WORK! It won't even process the image now even > > though the size is greater than 0! > > > > I am stumped > > > > PS James, thank you for your great info here. This particular area > > is only available to site administrators with passwords. > > > > --- In [email protected], James Keeline <[EMAIL PROTECTED]> wrote: > >> --- Marian Briones <[EMAIL PROTECTED]> wrote: > >> > >>> I posted yesterday and no one answered; I"m wondering if this > >>> list is having tech difficulties.... > >> > >> Your message came through but perhaps people were busy. I know I > > was (and still am). However, to > >> briefly address your question I offer the following. > >> > >> Like $_POST and $_GET, $_FILES is a superglobal which is intended to > > collect information received > >> from a particular input stream. In this case, the $_FILES contains > > data relevant to uploaded > >> files. > >> > >> This associative array has a first key which corresponds to the name > > of the variable in your > >> upload form. In the example below, the name of the uploaded file is > > myfile so the portion of the > >> array is $_FILES['myfile']. > >> > >> <form method='post' action='script.php' enctype='multipart/form-data'> > >> <input type='file' name='myfile'> > >> <input type='submit'> > >> </form> > >> > >> You should make a test script with a simple form and in the PHP > > which is identified in the action > >> parameter of the form tag you can display the variables available > > during your upload: > >> <pre> > >> The $_FILES array contains: > >> <?php print_r($_FILES); ?> > >> </pre> > >> > >> When a file is uploaded you will see the following values: > >> > >> $_FILES['myfile']['name'] // name of the original file > >> $_FILES['myfile']['size'] // size in bytes of the file > >> $_FILES['myfile']['type'] // MIME type of the file > >> $_FILES['myfile']['tmp_name'] // path to temporary file > >> $_FILES['myfile']['error'] // error code (0=no error) > >> > >> You will have to consult one of these specific values to see if your > > file was uploaded. Keep in > >> mind that several of these values may not be trustworthy. For > > example, the MIME type could be > >> faked by the uploading computer so use a server-based verification > > that the item is really an > >> image (such as the getimagesize() function). > >> > >> File uploads are very risky if not handled carefully. You are > > basically allowing unknown web > >> users the ability to place files of any type on your server. Two > > newer functions were added to > >> PHP to help ensure that the data you think is a file was an actual > > upload: > >> http://www.php.net/is_uploaded_file > >> http://www.php.net/move_uploaded_file > >> > >> They should be used instead of the old copy() and unlink() method > > seen in old tutorials and > >> scripts on file uploads. There is also good information on: > >> > >> http://us3.php.net/manual/en/features.file-upload.php > >> > >> James > >> _____ > >> > >> > >> James D. Keeline > Community email addresses: Post message: [email protected] Subscribe: [EMAIL PROTECTED] Unsubscribe: [EMAIL PROTECTED] List owner: [EMAIL PROTECTED] Shortcut URL to this page: http://groups.yahoo.com/group/php-list Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/php-list/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
