www.webdeveloper.com
Page 13 of 23 FirstFirst ... 31112131415 ... LastLast
Results 181 to 195 of 340

Thread: How to: Upload images using PHP

  1. #181
    Join Date
    May 2007
    Posts
    20
    this is my modified upload.processor.php
    Code:
    <?php
    include("files/dblines.php");
    
    /*===================================text insert====================*/
    if(($_POST['platenumber']=="")
      && ($_POST['carmake']=="")
      && ($_POST['carmodel']=="")
      && ($_POST['classcar']=="")
      && ($_POST['caryear']=="")
      && ($_POST['enginetype']=="")
      && ($_POST['maxpower']=="")
      && ($_POST['fueltype']=="")
      && ($_FILES['picture']=="")
      && ($_POST['price']==""))
    {
      printf("<h2 class=\"messages\">ERROR: Please enter all the required information for new vehicle.</h2>");
    }
    else
    {  
      $singleinput = 1;
      $columnnames = "";
      $columnvalues = "";
      
      if(isset($_REQUEST['platenumber']))
      {
        $platenumber = stripslashes(trim($_REQUEST['platenumber']));
        
        if($singleinput)
        {
          $columnnames .= "`platenumber`";
          $columnvalues .= "'{$platenumber}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`platenumber`";
          $columnvalues .= ",'{$platenumber}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['carmake']))
      {
        $carmake = stripslashes(trim($_REQUEST['carmake']));
        
        if($singleinput)
        {
          $columnnames .= "`make`";
          $columnvalues .= "'{$carmake}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`make`";
          $columnvalues .= ",'{$carmake}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['carmodel']))
      {
        $carmodel = stripslashes(trim($_REQUEST['carmodel']));
        
        if($singleinput)
        {
          $columnnames .= "`model`";
          $columnvalues .= "'{$carmodel}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`model`";
          $columnvalues .= ",'{$carmodel}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['classcar']))
      {
        $classcar = stripslashes(trim($_REQUEST['classcar']));
        
        if($singleinput)
        {
          $columnnames .= "`carclass`";
          $columnvalues .= "'{$classcar}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`carclass`";
          $columnvalues .= ",'{$classcar}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['caryear']))
      {
        $caryear = stripslashes(trim($_REQUEST['caryear']));
        
        if($singleinput)
        {
          $columnnames .= "`caryear`";
          $columnvalues .= "'{$caryear}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`caryear`";
          $columnvalues .= ",'{$caryear}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['enginetype']))
      {
        $enginetype = stripslashes(trim($_REQUEST['enginetype']));
        
        if($singleinput)
        {
          $columnnames .= "`enginetype`";
          $columnvalues .= "'{$enginetype}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`enginetype`";
          $columnvalues .= ",'{$enginetype}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['maxpower']))
      {
        $maxpower = stripslashes(trim($_REQUEST['maxpower']));
        
        if($singleinput)
        {
          $columnnames .= "`maxpower`"; 
          $columnvalues .= "'{$maxpower}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`maxpower`"; 
          $columnvalues .= ",'{$maxpower}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['fueltype']))
      {
        $fueltype = stripslashes(trim($_REQUEST['fueltype']));
        
        if($singleinput)
        {
          $columnnames .= "`fueltype`"; 
          $columnvalues .= "'{$fueltype}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`fueltype`"; 
          $columnvalues .= ",'{$fueltype}'";
          $singleinput = 0;
        }
      }
      if(isset($_REQUEST['price']))
      {
        $price = stripslashes(trim($_REQUEST['price']));
        
        if($singleinput)
        {
          $columnnames .= "`price`";
          $columnvalues .= "'{$price}'";
          $singleinput = 0;
        }
        else
        {
          $columnnames .= ",`price`";
          $columnvalues .= ",'{$price}'";
          $singleinput = 0;
        }
      }
      //$sql_insertion_data = "INSERT INTO `cars` ($columnnames) VALUES($columnvalues)";
      //mysql_query($sql_insertion_data) or die(mysql_error());
    }
    /*===================================image upload===================*/
    // filename: upload.processor.php
    
    // first let's set some variables
    
    // make a note of the current working directory, relative to root.
    $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
    
    // make a note of the directory that will recieve the uploaded file
    $uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'images/';
    
    // make a note of the location of the upload form in case we need it
    $uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'admin.php';
    
    // make a note of the location of the success page
    $uploadSuccess = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'upload.success.php';
    
    // fieldname used within the file <input> of the HTML form
    $fieldname = 'picture';
    
    // Now let's deal with the upload
    
    // possible PHP upload errors
    $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 the form
    isset($_POST['submit'])
        or error('the upload form is needed', $uploadForm);
    
    // check for PHP's built-in uploading errors
    ($_FILES[$fieldname]['error'] == 0)
        or error($errors[$_FILES[$fieldname]['error']], $uploadForm);
        
    // check that the file we are working on really was the subject of 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 uploaded file is in fact an image. Here is a simple check:
    // getimagesize() returns false if the file tested is not 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 already
    // taken... if it is already taken keep trying until we find a vacant one
    // sample filename: 1140732936-filename.jpg
    $now = time();
    while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
    {
        $now++;
    }
    //name var for image
    $imagename = $now.'-'.$_FILES[$fieldname]['name']; 
    
    // now let's move the file to its final location and allocate the new filename to it
    @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
        or error('receiving directory insuffiecient permission', $uploadForm);
    
    //in addition to Bokeh's script you can insert each record into a database.
    if(($columnnames == "")&&($columnvalues == ""))
    {//insert image only
      $q = "INSERT INTO `cars` (`picture`) VALUES ('$uploadFilename')";
      $s = mysql_query($q);
    }
    // insert other info and image
    else
    {
      $columnnames .= ",`picture`";
      $columnvalues .= "'{$uploadfilename}'";
      $q = "INSERT INTO `cars` ($columnnames) VALUES ($columnvalues)";
      $s = mysql_query($q);
    }
    //if an error
    echo(mysql_error()); 
    
    // If you got this far, everything has worked and the file has been successfully saved.
    // We are now going to redirect the client to a success page.
    header('Location: ' . $uploadSuccess);
    
    // The following function is an error handler which is used
    // to output an HTML error page if the file upload fails
    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;
    } // end error handler
    
    ?>
    and this is the error i'm getting

    Column count doesn't match value count at row 1
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\dandd\upload.processor.php:256) in C:\xampp\htdocs\dandd\upload.processor.php on line 260
    what's gone wrong?

  2. #182
    Join Date
    May 2007
    Posts
    20
    sorry. i resolved it myself. there was a missing comma for the r-value in the second line of the else-block. also there was a typo for that r-value. instead of $uploadFilename, i typed $uploadfilename. it works just fine now. can u believe i've been brooding over this for TWO DAYS???? LOL

    Code:
    //name var for image
    $imagename = $now.'-'.$_FILES[$fieldname]['name']; 
    
    // now let's move the file to its final location and allocate the new filename to it
    @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
        or error('receiving directory insuffiecient permission', $uploadForm);
    
    //in addition to Bokeh's script you can insert each record into a database.
    if(($columnnames == "")&&($columnvalues == ""))
    {//insert image only
      $q = "INSERT INTO `cars` (`picture`) VALUES ('$uploadFilename')";
      $s = mysql_query($q);
    }
    // insert other info and image
    else
    {
      $columnnames .= ",`picture`";
      $columnvalues .= ",'$uploadFilename'";
      $q = "INSERT INTO `cars` ($columnnames) VALUES ($columnvalues)";
      $s = mysql_query($q);
    }
    Last edited by rozilla; 04-03-2008 at 02:55 AM.

  3. #183
    Join Date
    Jan 2005
    Location
    Alicante (Spain)
    Posts
    7,739
    Quote Originally Posted by rozilla
    what's gone wrong?
    You have a query that looks like this:
    Code:
    insert into my_table (col_1, col_2, col_3) values ('item 1', 'item 2', 'item 3', 'item 4')
    Notice how the column count doesn't equal the item count. That is the error. Go back through your code and find out why you have this disparity.

    This is an SQL problem so doesn't really have anything to do with this thread. If you need more help start another thread.

  4. #184
    Join Date
    Jun 2007
    Location
    Tangerang, Banten
    Posts
    258
    Great code, bokeh..
    But hey...
    Forget to close the body tag in error function??

    Cheers

  5. #185
    Join Date
    May 2008
    Location
    Carmarthen, Wales
    Posts
    1
    nice tutorial... works a treat! Is there any way of checking the image width and height?

  6. #186
    Join Date
    Jan 2005
    Location
    Alicante (Spain)
    Posts
    7,739

  7. #187
    Join Date
    May 2008
    Posts
    4
    Please, I want to know the code upload images Above. Can it run good in host windows. I had download zip file and I can't use it on host windows
    A Example about error: http://cameraquansat.net/upload/upload.form.php
    but it run good in Linux host free: http://www.cameraquansat.phpnet.us/upload/upload.php
    Please help me!
    Thanks!

  8. #188
    Join Date
    Jan 2005
    Location
    Alicante (Spain)
    Posts
    7,739

  9. #189
    Join Date
    May 2008
    Posts
    4
    show Error is:
    An error has occured: only image uploads are allowed... The upload form is reloading
    Thanks

  10. #190
    Join Date
    Jan 2005
    Location
    Alicante (Spain)
    Posts
    7,739

  11. #191
    Join Date
    May 2008
    Posts
    4
    I using PHP Version 5.2.1
    Thanks

  12. #192
    Join Date
    Mar 2005
    Posts
    140
    Is it really reasonable to save full path to the image in db? I thought that it will take much more space and maybe you can just save a pic's filename. M?

  13. #193
    Join Date
    Mar 2005
    Posts
    140
    1. So if I try to do the above, just keep the name of the file in the db, and all the pathways to upload directories I keep in variables, how can i do this? When I modify the block of code shown below by removing $uploadsDirectory, the file no longer is uploaded. So I've understood that this line carries the info on the upload dir. But I don't understand how and what exactly this line does. M?


    PHP Code:
    $now time();
    while(
    file_exists($uploadFilename $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
    {
        
    $now++;


    2. If I want to put this script into a folder ("scripts/", for example) and not keep it in root (because all those files make it messy and I have a special folder for such script files), everything gets messed up. I tried working with noting directories, but it gets messy and I couldn't make it work. Can you help?

  14. #194
    Join Date
    May 2008
    Posts
    4
    Thanks you very much!

  15. #195
    Join Date
    Mar 2005
    Posts
    140
    You made it look like you're thanking me )))
    But I don't want my question to be lost %)

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles