So I am trying to do a basic upload via an HTML form and a simple php script, but the move_uploaded_file function always returns false. I have run "chmod 777" on the directory (I will deal with safety more when I actually get this to work) and the "upload" directory is in the htdocs folder (actually /var/www in Ubuntu Server and Linux Mint).
Here is the form:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
...and upload_file.php...
<?php
if ($_FILES["file"]["error"] == 0){
if (file_exists("upload/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
if(move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/upload/" . $_FILES["file"]["name"])){
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}else{
echo "Failed to move uploaded file";
}
}
}else{
echo "Return Code: " . $_FILES["file"]["error"];
}
?>
When I try to upload a small JPEG, I get "Failed to move file". Any thoughts?
Your script needs to be able to write to the destination directory, which in this case would be /var/www/upload/ (is that the directory where you changed the permissions?). Also you are using the client's local name which could be a possible problem and security issue (not necessarily the reason here though).