Home > Enterprise >  PHP upload script not working, empty variables
PHP upload script not working, empty variables

Time:07-15

I've tried to add image upload to an already working script that posts a subject and description. For some reason it's failing at the point where I'm using move_uploaded_file

The file name is successfully inserting into the database and the print_r statement is showing that the file is going into /tmp. I've tried to echo and print the $tempname and $folder but they seem to be blank and I don't know why. I'm guessing this is the problem.

My php.ini and httpd.conf and permissions are all good as another upload script written by someone else works fine.

if(isset($_POST['submit']))
{
    $date = date('Y-m-d H:i:s');
    $subject = $_POST['subject'];
    $description = $_POST['description'];

    $upload_dir = './image';
    $filename = $_FILES["choosefile"]["name"];
    $tempname = $_FILES["choosefile"]["temp_name"];
    move_uploaded_file($tempname, "$upload_dir/$filename");
    
    $insert = mysqli_query($db,"INSERT INTO xv.post (subject, description, creation_date, image) VALUES ('$subject', '$description', '$date', '$filename')");
    

    if(!$insert)
    {
        echo mysqli_error();
    }
    else
    {
        print "<p>Here is some more debugging info:</p>";
        print_r($_FILES);
        echo $tempname . $folder;
    }
}

CodePudding user response:

It should be tmp_name instead of temp_name.

So changing to below should do the trick:

$upload_dir = './image';
    $filename = $_FILES["choosefile"]["name"];
    $tempname = $_FILES["choosefile"]["tmp_name"];
    move_uploaded_file($tempname, "$upload_dir/$filename");
    
    $insert = mysqli_query($db,"INSERT INTO xv.post (subject, description, creation_date, image) VALUES ('$subject', '$description', '$date', '$filename')");

CodePudding user response:

please add a print_r to the $_FILES to see the content:

print_r($_FILES);

Provably there is another structure that you have to get.

  • Related