In my code below, you can see that I am trying to replace the $name variable with this new set of characters. The problem is, that the name has the extension at the end of it as well. So this would cause an issue. So depending on what type of file the user is trying to submit, the extension will be concatenated at the end of the file name, then will upload it.
I'm getting no errors, and am stuck on what to do from here. The function creates a random string of characters for the name.
Code: Select all
<?php
$upload = $_POST['upload'];
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"];
echo $type;
function genRandomString() {
$length = 10;
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$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/jpeg" || $type=="image/png" || $type=="image/gif" || $type=="image/bmp" || $type=="image/jpeg")
{
if ($size <= 5242880)
{
if(file_exists($name)){
$name = genRandomString($string);
}
else
{
move_uploaded_file($temp, "avatars/".$name);
$success = "Upload Complete!";
}
}
else{
$uploaderror = "Your image must be less than 5 megabytes.";
}
}
else
{
die("That format is not allowed!");
}
}
}
?>
<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 echo $success, $uploaderror; ?>
</form>
</html>