| | |
Php file upload
Please support our PHP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Sep 2008
Posts: 136
Reputation:
Solved Threads: 0
Hi I am new to php,
I had a form in my page to upload image and some data. And that image filed is not mandatory. I had done that script well and working well. But the problem is it always need a image ( that is not mandatory in my case ). The following is the code with me.. Kindly let me know which change i need to do for making that file field is not mandatory ...
Thanks in Advance
I had a form in my page to upload image and some data. And that image filed is not mandatory. I had done that script well and working well. But the problem is it always need a image ( that is not mandatory in my case ). The following is the code with me.. Kindly let me know which change i need to do for making that file field is not mandatory ...
PHP Syntax (Toggle Plain Text)
$string = md5(microtime() * mktime()); $new = substr($type,0,1); $ido = substr($string,0,6); $id= $new.$ido; $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']); // make a note of the directory that will recieve the uploaded files $uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . "shopping/"; // make a note of the location of the upload form in case we need it $uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'shopping.php'; // make a note of the location of the success page $uploadSuccess ='shopping.php'; // name of the fieldname used for the file in the HTML form $fieldname = 'file'; $errors = array(1 => 'php.ini max file size exceeded', 2 => 'html form max file size exceeded', 3 => 'file upload was only partial', 4 => 'no file was attached'); // check the upload form was actually submitted else print form isset($_POST['Submit']) or error('the upload form is neaded', $uploadForm); // check for standard uploading errors ($_FILES[$fieldname]['error'] == 0) or error($errors[$_FILES[$fieldname]['error']], $uploadForm); // check that the file we are working on really was an HTTP upload @is_uploaded_file($_FILES[$fieldname]['tmp_name']) or error('not an HTTP upload', $uploadForm); // validation... since this is an image upload script we // should run a check to make sure the upload is an image @getimagesize($_FILES[$fieldname]['tmp_name']) or error('only image uploads are allowed', $uploadForm); // make a unique filename for the uploaded file and check it is // not taken... if it is keep trying until we find a vacant one $md5 = md5(microtime() * mktime()); $string = substr($md5,0,5); while(file_exists($uploadFilename = $uploadsDirectory.$string.'-'.$_FILES[$fieldname]['name'])) { $string++; } $name = $string.'-'.$_FILES[$fieldname]['name']; // now let's move the file to its final and allocate it with the new filename @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename) or error('receiving directory insuffiecient permission', $uploadForm); rename("shopping/" . $name, "shopping/" .$type."-".$name); function error($error, $location, $seconds = 5) { header("Refresh: $seconds; URL=\"$location\""); echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'."\n". '"http://www.w3.org/TR/html4/strict.dtd">'."\n\n". '<html lang="en">'."\n". ' <head>'."\n". ' <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">'."\n\n". ' <link rel="stylesheet" type="text/css" href="stylesheet.css">'."\n\n". ' <title>Upload error</title>'."\n\n". ' </head>'."\n\n". ' <body>'."\n\n". ' <div id="Upload">'."\n\n". ' <h1>Upload failure</h1>'."\n\n". ' <p>An error has occured: '."\n\n". ' <span class="red">' . $error . '...</span>'."\n\n". ' The upload form is reloading</p>'."\n\n". ' </div>'."\n\n". '</html>'; exit; }
Thanks in Advance
Last edited by rajeesh_rsn; Jan 8th, 2009 at 1:39 pm. Reason: mistake
•
•
Join Date: Aug 2007
Posts: 55
Reputation:
Solved Threads: 9
What i would first attempt to do is to check whether the field 'file' has anything after being posted, if it is set to something (hopefully a filename) then we can proceed to call the other image processing stuff.
Otherwise we omit the image processing code.
i.e.
I have put the code which i think affects the image into the if clause. All code before and after should remain as before.
Otherwise we omit the image processing code.
i.e.
php Syntax (Toggle Plain Text)
//put the isset(...) stuff here if ($_FILES['file']['name'] != '') { //can check for other things // check for standard uploading errors ($_FILES[$fieldname]['error'] == 0) or error($errors[$_FILES[$fieldname]['error']], $uploadForm); // check that the file we are working on really was an HTTP upload @is_uploaded_file($_FILES[$fieldname]['tmp_name']) or error('not an HTTP upload', $uploadForm); // validation... since this is an image upload script we // should run a check to make sure the upload is an image @getimagesize($_FILES[$fieldname]['tmp_name']) or error('only image uploads are allowed', $uploadForm); // make a unique filename for the uploaded file and check it is // not taken... if it is keep trying until we find a vacant one $md5 = md5(microtime() * mktime()); $string = substr($md5,0,5); while(file_exists($uploadFilename = $uploadsDirectory.$string.'-'.$_FILES[$fieldname]['name'])) { $string++; } $name = $string.'-'.$_FILES[$fieldname]['name']; // now let's move the file to its final and allocate it with the new filename @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename) or error('receiving directory insuffiecient permission', $uploadForm); rename("shopping/" . $name, "shopping/" .$type."-".$name); } //put that function error function here //----------------
Last edited by peter_budo; Jan 11th, 2009 at 2:22 pm. Reason: Keep It Organized - For easy readability, always wrap programming code within posts in [code] (code blocks) and [icode] (inline code) tags.
![]() |
Similar Threads
- Upload File Through Forum (PHP)
- File upload problem (PHP)
- File upload problems (PHP)
Other Threads in the PHP Forum
- Previous Thread: help sending email at a future date using php
- Next Thread: PHP Reference book
| Thread Tools | Search this Thread |
apache api array basics beginner binary broken buttons cakephp checkbox class cms code codingproblem combobox cron curl customizableitems database date datepart display dynamic echo email error file files filter folder form forms forum function functions global google head headmethod href htaccess html image include insert ip javascript joomla limit link list login mail malfunctioning memmory memory menu mlm multiple mysql nodes number oop parameter password paypal pdf php problem query radio random recourse recursiveloop remote script search seo server sessions snippet source sp space sql static syntax system table tutorial up-to-date update upload url validator variable video web webdesign youtube





