I am trying to upload pictures on my site. However, I am trying to find the correct filepath to the folder I need to send the pictures too. I continue to get a 500 server internal error when move_uploaded_file() is called. I tried playing around with a couple of things, and I believe the problem is that I am not using the correct destination folder.
<?php
$target_path = "G:\\PleskVhosts\\missed-moments.com\\httpdocs\\uploads\\";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
echo $_SERVER["DOCUMENT_ROOT"] . "<br/>";
echo $target_path;
echo getcwd()."<br/>";
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name'])." has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
I tried to find the path of the folder I was in by using :
echo $_SERVER["DOCUMENT_ROOT"] . "<br/>";
echo getcwd()."<br/>";
And then I tried to hardcode the same address with the addition of the folder that I want to save the pictures in it. I was hoping somebody could give me some other suggestions on how to resolve this issue.
Thank you in advance!
Related
I am trying to upload a client file to my server (from an html form using a "post" method), run a program on the $upldfile variable and then display the program results as downloadable links for the client.
My code is listed below and every time I run this I get the "file upload failed" notice.
Does anyone know if this is to with a permissions based problem or a server error or a code issue?
Thank you all in advance for any help offered
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$destination_path = getcwd().DIRECTORY_SEPARATOR;
$target_path = $destination_path . "uploads/" . basename( $_FILES["file"{["name"]);
$upldfile = move_uploaded_file($_FILES['file']['tmp_name'], $target_path);
if ($upldfile){
echo "<p>File upload success.</p>";
} else {
echo "<p>File upload failed.";
}
ANSWER:
Changing the permissions appropriately,
and also
modifying the php.ini file to allow larger file uploads.
The code itself in the original file was correct.
I have a form with 3 tabs, one for pictures, one for music and one for youtube.
The first 2 are forms where people can upload files, the second is just for a youtube link.
When people hit the 'upload' button they are sent to a second page where the actual uploading is done. Now uploading musc works, but using the same code for the pictures it doesn't seem to work.
if (isset($_POST['submitfoto'])) {
// uploaden
$target_path = "uploads/";
$target_path = $target_path . time() . $_SERVER['REMOTE_ADDR'] . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
// Here I do a bunch of stuff with the database, but it never gets that far.
echo "Thanks for uploading this file.";
} else{ echo "File upload failed";} }
Now I get File upload failed all the time. But the exact same code seems to work for uploading .mp3 file.
How is this possible?
Here is a problem.
I have an HTML form with several fields in it.
One of the fields - 'Upload file'.
When I upload a file, everything works properly. But when I choose to submit the form without a file, it gives me the error message: "There was an error uploading the file, please try again". Looks to me that the script thinks that uploading a file is mandatory.
How do I change it?
Here is my PHP:
//File upload
// Where the file is going to be placed
$target_path = "uploads/";
// Add the original filename to our target path.
//Result is "uploads/filename.extension"
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
//End of file upload
Thank you!
You should check using the function is_uploaded_file
try adding the following condition before calling the function move_uploaded_file
if (is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) {
The target path of move_uploaded_files should be a folder, not a file.
You should also check if the folder is_writeable and is_dir.
move_uploaded_file returns a bool, true or false, depending on the success of the operation.
A solution would be to check more rigorously, e.g. if a file was uploaded at all via is_uploaded_file function.
For proper working, the function is_uploaded_file() needs an argument like $_FILES['userfile']['tmp_name'], - the name of the uploaded file on the clients machine $_FILES['userfile']['name'] does not work.
Unable to Upload file with filename with different extention in php
echo basename( $_FILES['uploadedfile']['name']);
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
// header("Location: EHP_Configuration.html");
} else{
// header("Location: EHP_Configuration.html");
echo "Notdone";
}
i have verified that on Echo it show proper filename
But move_upload give me "Notdone"
Regards
Have you got error_reporting on? If so check to see if a warning is thrown, if there is no warning and you're just getting FALSE retruned then PHP doesn't think the file is a valid uploaded file (done via PHPs HTTP POST) if you are getting a warning as well as a return value of FALSE this should give some indication as to what the problem with moving the file is.
May be you have missed slash here:
$target_path . '/' . basename( $_FILES['uploadedfile']['name']);
I miss it all the time :)
I need to resize an uploaded image.
The class that resizes needs to get the location of the image to be worked with.
It returns the image in a variable.
However, when I try to get the path to the image, I get from $_FILES['profile_upload']['tmp_name'] the following: C:\xampp\tmp\php1C5.tmp
I don't get the actual file, even though the tmp folder contains it!
How can I get the actual filename? Another question - for how long are the files stored in tmp, and when do they get deleted?
By the way, does the Zend Framework have a good image manipulation interface?
You should complete the whole file upload setup with something similar and then the variable $_FILES['uploadedfile']['name'] will also contain the original file name:
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
To address your second point: Files are stored until the script they were uploaded to finishes.