I've got a page where the user can upload an avatar/photo. Once it uploads, it isn't updated for the user. It either shows the old image that was already there, or shows a broken image. What is wrong with my code. How can I get it to update the most recent image uploaded upon hitting submit?
Thanks.
PHP Code:
<?php session_start();
if (isset($_SESSION['username'])){
$username = $_SESSION['username']; $upload = $_POST['upload'];
include('inc/connect.php'); $uploadsql = mysql_query("SELECT * FROM `users` WHERE `username`='$username'"); $uploadrow = mysql_fetch_assoc($uploadsql);
$id = $uploadrow['id']; $avatar = $uploadrow['avatar']; $folder = "avatars/";
$avatarshow = '<img src="avatars/' . $avatar . '" width="65" height="65" />'; if ($upload) {
// Name of file $name = $_FILES["image"]["name"]; // Type of file (video/avi) or image/jpg, etc $type = $_FILES["image"]["type"]; //size of file $size = $_FILES["image"]["size"]; //stores file in a temporary location $temp = $_FILES["image"]["tmp_name"]; // if there is an error $error = $_FILES["image"]["error"];
// function genRandomString() { // $characters = '0123456789abcdefghijklmnopqrstuvwxyz'; // $length = 10; // $string = '';
// for ($p = 0; $p < $length; $p++) { // $string .= $characters[mt_rand(0, strlen($characters))]; // }
// return $string; // }
if ($error > 0) { $uploaderror = "An error occured. Please try again."; } else {
if ($type=="image/jpg" || $type=="image/png" || $type=="image/gif" || $type=="image/bmp" || $type=="image/jpeg") { if ($size <= 1048576) { //if(file_exists("avatars/".$name)){ if ($type=="image/jpeg"){ $extension = ".jpg"; } if ($type=="image/jpg"){ $extension = ".jpg"; } if ($type=="image/png"){ $extension = ".png"; } if ($type=="image/bmp"){ $extension = ".bmp"; } if ($type=="image/gif"){ $extension = ".gif"; } //$name1 = genRandomString($string); $ext = $extension; $name = $id.$ext; //} // unlink deletes the file so a new file can be uploaded in its place unlink('avatars/' . $avatar); $uploadquery = mysql_query("UPDATE users SET avatar='$name' WHERE username='$username'"); move_uploaded_file($temp, "avatars/".$name); $success = "Upload Complete!"; } else{ $uploaderror = "Your image must be less than 1 megabytes."; } } else { die("That format is not allowed!");
} } } } else{
header("Location: index.php"); } ?> <html> <h1>Upload a File</h1> <form action="upload.php" method="POST" enctype="multipart/form-data"> <input type="file" name="image"><br /> <input type="submit" name="upload" value="Upload"><br /> <?php $avatarshow = '<img src="avatars/' . $avatar . '" width="65" height="65" />'; ?> <?php echo $success, $uploaderror."<br />".$avatarshow; ?>
</form> </html>
|