Reputation:
I've attempted to write code to have a file uploaded to a "media" folder in PHP. For some reason it continues to not work.
Here's the execution code:
move_uploaded_file($_FILES["file"]["tmp_name"],"../media/" . $_FILES["file"]["name"]) or die ("Failure to upload content");
Here's my form code:
<input type="file" name="file" id="file" />
Any ideas why it may not be working?
EDIT:
When I use the command "print_r($_FILES);", it displays:
Array ( [file] => Array ( [name] => Screen Shot 2012-05-29 at 12.36.11 PM.png [type] => image/png [tmp_name] => /Applications/MAMP/tmp/php/phpHNj3nW [error] => 0 [size] => 71640 ) )
Image is NOT uploaded into the folder.
Upvotes: 7
Views: 54993
Reputation: 1
You need to set the folder permission to 777. otherwise your file won't load
Upvotes: -1
Reputation: 774
If anyone wounder what's the simplest file php uploader
this is the code I test it,
it will upload the file to current folder
This code for learning purpose only, don't upload it to working environment.
<html>
<body>
<form method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file1" id="file1" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
<?php
if(isset($_POST['submit'])) {
if ($_FILES["file1"]["error"] > 0) {
echo "Error: " . $_FILES["file1"]["error"] . "<br />";
} else {
echo "Upload: " . $_FILES["file1"]["name"] . "<br />";
echo "Type: " . $_FILES["file1"]["type"] . "<br />";
echo "Stored file:".$_FILES["file1"]["name"]."<br/>Size:".($_FILES["file1"]["size"]/1024)." kB<br/>";
move_uploaded_file($_FILES["file1"]["tmp_name"],dirname(__FILE__).'/'.$_FILES["file1"]["name"]);
}
}
exit ();
?>
credit https://stackoverflow.com/a/15709181/3019002
Upvotes: 0
Reputation: 139
Make sure that in your form.. you put the enctype.
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Success
Upvotes: 0
Reputation: 1
I was having the same problem. I am using ubuntu 18.04 and it was solved when i used this permission command on terminal. sudo chmod -R 777 /var/www/html/target_dir. ->I have apache2 web server and target_dir as Download so replace target_dir as per your destination directory.
Upvotes: 0
Reputation: 29
Check in php.ini file max_execution_time heavy images are not uploaded due to execution time..
eg: ;
Upvotes: 2
Reputation: 1511
Put the encription in form
<form method="post" action="index.php" enctype="multipart/form-data"></form>
Check in php.ini file max_execution_time
heavy images are not uploaded due to execution time..
Upvotes: 3
Reputation: 279
Have you checked that the "web server user" has write permissions to "../media" ?
Upvotes: 0
Reputation: 15338
make sure media
folder has 777 permission and the path ../media/
is correct
Upvotes: 6
Reputation: 364
There is a form with encrypt type or an ajax call? Do you check if the file is sended to the upload script (with a print_r($_FILES["file"]
).
If correct, do you have check if the relative path is correct?
You must start from the current script (if file is included you must start from the including script).
Sorry if answer seems simply, but the posted code is a little too short to evaluate.
Upvotes: 1
Reputation: 15091
In your form tag you want something like this
<form enctype="multipart/form-data" action="uploader.php" method="POST">
Make sure enctype is set to multipart/form-data for files. Replace uploader.php with the name of the php file doing the processing. Also make sure your permissions are set so the file can be created in the directory.
Here's a list of possible problems: http://php.net/manual/en/features.file-upload.php
Upvotes: 0
Reputation: 454
Make sure that in your form.. you put the enctype.
eg: <form method="post" enctype="multipart/form-data" action="index.php"></form>
;
To check if files are successfully updated upon submitting the form. use print_r to see results.
print_r($_FILES);
Upvotes: 30