php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #41989 move_uploaded_file & relative path
Submitted: 2007-07-13 09:46 UTC Modified: 2007-07-19 15:50 UTC
From: gerome dot fournier at infomaniak dot ch Assigned:
Status: Closed Package: Filesystem function related
PHP Version: 5.2.3 OS: Debian sarge
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: gerome dot fournier at infomaniak dot ch
New email:
PHP Version: OS:

 

 [2007-07-13 09:46 UTC] gerome dot fournier at infomaniak dot ch
Description:
------------
The function move_uploaded_file does not work if the destination
path is a relative path. The function returns TRUE, but the file is
not moved at all.

If I replace the following line:

  $dest_file = "./tmp/test.txt";

by:

  $dest_file = getcwd() . "/tmp/test.txt";

then everything works as expected. In the reproduce code, I provide
the HTML form used to upload a file, and the PHP code to process the
uploaded file. PHPINFO of the server running this script is available here:

  http://imu120.infomaniak.ch/phpinfo.php

Reproduce code:
---------------
<html>
<form enctype="multipart/form-data" METHOD="POST" action="upload.php">
    <input type="file" name="import_file"/>
    <input type="submit" name="submit"/>
</form>
</html>

<?php
    if (is_uploaded_file($_FILES["import_file"]["tmp_name"])) {
        $dest_file = "./tmp/test.txt";
        if (move_uploaded_file($_FILES["import_file"]["tmp_name"], $dest_file)) {
            // check the uploaded file has really been moved or not
            if (! file_exists($dest_file))
                echo "ERROR: uploaded file not moved as $dest_file";
            else
                echo "OK: uploaded file moved as $dest_file";
        }
    }
?>


Expected result:
----------------
OK: uploaded file moved as ./tmp/test.txt

Actual result:
--------------
ERROR: uploaded file not moved as ./tmp/test.txt

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-07-13 09:57 UTC] tony2001@php.net
Please try with prefork MPM.
 [2007-07-13 10:07 UTC] tony2001@php.net
But please try this patch first.
http://dev.daylessday.org/diff/bug41989.diff
 [2007-07-19 15:50 UTC] tony2001@php.net
Assuming the patch is ok. 
Fixed in CVS.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Dec 03 17:01:29 2024 UTC