> Hello... I'm trying to upload a picture along with other information.
> 
> I have several fields to input, such as name, address, etc. (and I get those
> to go to the MySQL database with no problem).  But on the same page I want
> the user to be able to pick a picture of themself from their harddrive and
> upload it.  The script must either enter the address of the uploaded picture
> to MySQL so it will show up with the user's info., or rename it something
> like $id.ext.
> 
> I know something like this needs to go in the html:
> 
> <form enctype="multipart/form-data" action="_URL_" method="POST">
> <input type="hidden" name="MAX_FILE_SIZE" value="30000">
> Send this file: <input name="userfile" type="file">
> <input type="submit" value="Send File">
> </form>I'd like to just use one "submit" button that uploads everything (the
> data to the database and the picture to my server).
> 
> I've read the PHP manual but it's greek to this newbie... any help GREATLY
> appreciated....

You say you read the manual, did you read the material at:
<http://us2.php.net/manual/en/features.file-upload.php> ?

Note in your example you're specifying a max upload size of only 30K.

Following are snippets from a couple of my scripts. HTH.

--------------------------
>From the uploading script:

<form name="upForm" enctype="multipart/form-data"
action="upload_process.php" method="post" onsubmit="return
validateForm(this)">
<input type="hidden" name="MAX_FILE_SIZE" value="2048000" />

<table cellspacing="0">

[snip]

<tr>
<td class="label">Upload image:</td>
<td><input class="forminput" name="userfile" type="file" /></td>
</tr>
<tr>
<td class="label">Caption:</td>
<td><textarea name="caption" rows="3" cols="42" wrap="wrap"></textarea></td>
</tr>
<tr>
<td class="label">Sequence:</td>
<td><input class="forminput" type="text" name="seqfile" size="3"
maxlength="2" />

----------------------------------------------------------
And from the script that's posted to (upload_process.php):

    $userfile = $HTTP_POST_FILES["userfile"]["tmp_name"];
    $userfile_type = $HTTP_POST_FILES["userfile"]["type"];
    $userfile_name = $HTTP_POST_FILES["userfile"]["name"]; // same file name
that was uploaded

    if ($userfile_type == "image/gif") {
        echo("<p>Problem with upload " . ($i + 1) . ": Image is GIF format.
Only JPEG or PNG formats are supported.</p>\n</body>\n</html>");
        exit();
    }
    if ($userfile_type != "image/jpeg" && $userfile_type != "image/png") {
        echo("<p>Problem with upload " . ($i + 1) . ": Image file type is: "
. $userfile_type . ". Only JPEG or PNG formats are
supported.</p>\n</body>\n</html>");
        exit();
    }
    $userfile_error = $HTTP_POST_FILES["userfile"]["error"];
    if ($userfile_error > 0) {
        echo("<p>Problem with upload: ");
        switch ($userfile_error) {
            case 1: echo("File exceeded upload_max_filesize"); break;
            case 2: echo("File exceeded max_file_size"); break;
            case 3: echo("File only partially uploaded"); break;
            case 4: echo ("No file uploaded"); break;
        }
        echo("</p>\n</body>\n</html>");
        exit();
    }
    // keep same name as uploaded, specify where it's moved to
    $upfile = $DOCUMENT_ROOT . "/i/" . $userfile_name;
    if (is_uploaded_file($userfile)) {
        if (!move_uploaded_file($userfile, $upfile)) {
            echo("<p>Problem: Could not move file to destination
directory.</p>\n</body>\n</html>");
            exit();
        }
    } else {
        echo("<p>Problem: Possible file upload attack. Filename: " .
$userfile_name . "</p>\n</body>\n</html>");
        exit();
    }

    // save file information to database
    $conn = db_connect();
    if (!$conn) {
        echo("<p>Error connecting to database: " . mysql_error() .
"</p>\n</body>/n</html>");
        exit();
    }
    $PagePath = get_magic_quotes_gpc() ? htmlentities($_POST["menu_path"]) :
htmlentities(addslashes($_POST["menu_path"]));
    $Caption = get_magic_quotes_gpc() ? htmlentities($_POST[$cp]) :
htmlentities(addslashes($_POST[$cp]));
    
    $insert_sql = "INSERT INTO Images SET PagePath='$PagePath',
FileID='$userfile_name', " .
        "Caption='$Caption', Sequence='$_POST[$sq]', LastMod=NOW(),
UploadedBy='$valid_user'";
    if (@!mysql_query($insert_sql)) {
        echo("<p>Error adding image information to database: " .
mysql_error() . "</p>\n</body>\n</html>");
        exit();
    }
    echo("<p>" . $userfile_name . " uploaded sucessfully and image
information saved.</p>\n");

--
Lowell Allen

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to