php image upload script seems isn't working and i don't know why

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tolkienarda
    Contributor
    • Dec 2006
    • 316

    php image upload script seems isn't working and i don't know why

    hi all

    I am using a php script to try to upload images to my database. i know i am connecting to my database because the image title is being wirtten to the database. but the image isn't example:

    if i upload the coke emblem from my desktop and type in 'coke'; when i look into the phpmyadmin i see that the text coke was written to the database but in the pix field it said [BLOB - 0 Bytes] below is the code if anyone has insight i would be grateful

    this script is live at http://www.steppinupwe bdesign.com/cms/imgupload.php
    [PHP]
    if ($_REQUEST[completed] == 1) {
    // Need to add - check for large upload. Otherwise the code
    // will just duplicate old file ;-)
    // ALSO - note that latest.img must be public write and in a
    // live appliaction should be in another (safe!) directory.
    move_uploaded_f ile($_FILES['imagefile']['tmp_name'],"latest.img ");
    $instr = fopen("latest.i mg","rb");
    $image = addslashes(frea d($instr,filesi ze("latest.img" )));
    if (strlen($instr) < 149000) {
    mysql_query ("insert into pix (title, imgdata) values (\"".
    $_REQUEST[whatsit].
    "\", \"".
    $image.
    "\")");
    } else {
    $errmsg = "Too large!";
    }
    }

    // Find out about latest image

    $gotten = @mysql_query("s elect * from pix order by pid desc limit 1");
    if ($row = @mysql_fetch_as soc($gotten)) {
    $title = htmlspecialchar s($row[title]);
    $bytes = $row[imgdata];
    } else {
    $errmsg = "There is no image in the database yet";
    $title = "no database image available";
    // Put up a picture of our training centre
    $instr = fopen("../wellimg/ctco.jpg","rb") ;
    $bytes = fread($instr,fi lesize("../wellimg/ctco.jpg"));
    }

    // If this is the image request, send out the image

    if ($_REQUEST[gim] == 1) {
    header("Content-type: image/jpeg");
    print $bytes;
    exit ();
    }
    ?>

    <html><head>
    <title>Upload image</title>
    <body bgcolor=white>< h2>latest picture</h2>
    <font color=red><?= $errmsg ?></font>
    <center><img src=?gim=1 width=144><br>
    <b><?= $title ?></center>
    <form enctype=multipa rt/form-data method=post>
    <input type=hidden name=MAX_FILE_S IZE value=150000>
    <input type=hidden name=completed value=1>
    browse: <input type=file name=imagefile> <br>
    comments: <input name=whatsit><b r>
    then: <input type=submit></form><br>


    </body>
    </html>
    [/PHP]

    thanks eric
  • xwero
    New Member
    • Feb 2007
    • 99

    #2
    why do you move the file if you store it in the database?

    [PHP]
    $image = addslashes(frea d(fopen ($_FILES['imagefile']['tmp_name'],'r'),filesize( $_FILES['imagefile']['tmp_name'])));
    [/PHP]

    Comment

    • tolkienarda
      Contributor
      • Dec 2006
      • 316

      #3
      i am not sure this script is one i downloaded the script and read all of the documentation but i still can't make it work

      eric

      Comment

      • xwero
        New Member
        • Feb 2007
        • 99

        #4
        you can try my code snippet to see if you get the image into the database.

        Comment

        • tolkienarda
          Contributor
          • Dec 2006
          • 316

          #5
          and here is a stupid question for you

          where do i put your snippit of code

          sorry for the stupidity

          eric

          Comment

          • xwero
            New Member
            • Feb 2007
            • 99

            #6
            change this

            [PHP]
            $instr = fopen("latest.i mg","rb");

            $image = addslashes(frea d($instr,filesi ze("latest.img" )));
            [/PHP]

            to this

            [PHP]
            $image = addslashes(frea d(fopen ($_FILES['imagefile']['tmp_name'],'r'),filesize( $_FILES['imagefile']['tmp_name'])));
            [/PHP]

            which version of php are you using? the rb parameter in fopen is only for php 5

            Comment

            • tolkienarda
              Contributor
              • Dec 2006
              • 316

              #7
              your'e awesome thanks alot it works

              eric

              Comment

              • Rockdrala
                New Member
                • Jun 2007
                • 1

                #8
                Just a couple questions on this script. it looks like your code snippet is pointing to a temp directory to store the image. are you actually storing the physical image in the db? and wouldnt that be kinda hoggish on the db? :p

                im not really seeing any authorization on the db either or what db to throw it in. i guess this script is assuming you have a already completed a login process that has got ya a cookie.

                Comment

                Working...