File path issues with move_uploaded_file - php

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

using php to move a file

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.

move_uploaded_file

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?

Error uploading file from HTML form

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

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 :)

moving around uploaded files in PHP

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.

Categories