user1375823
user1375823

Reputation: 105

PHP- Moving file using URL

So the scenario is, I have an ecommerce site which involves users uploading files & details, the links to the files & the text of the details is saved into a text file. All this stuff is uploaded into a temporary folder.

The payment system I have integrated is Paypal. I have Paypal send a response to the IPN. In this file, I send some emails, but I also wish to move the files into a permanent folder and thus edit the links in the text file. But I can't seem to access the files properly.

This is my error codes:

file_get_contents( ../uploads/tmp/file/*FILE NAME HERE*.doc) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: No such file or directory in /home/*username here*/public_html/*name*/*dir*/ipn.php on line 103

PHP Warning:  file_put_contents( ../uploads/tmp/file/*FILE NAME HERE*.doc) [<a href='function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: No such file or directory in /home/*username here*/public_html/*name*/*dir*/ipn.php on line 103

PHP Warning:  copy( ../uploads/tmp/file/*FILE NAME HERE*).doc) [<a href='function.copy'>function.copy</a>]: failed to open stream: No such file or directory in *link to ipn.php* on line 106

//This is my code

if ($key ==  'Book File '){
    $oldBookFileName = $result['Book File '];
    $oldBookLink = str_replace('*BASE URL IS HERE*',     '../',$oldBookFileName);
    if (strpos($result['Book File '],'/tmp/') !== false) {
        $newBookFileName = str_replace("/tmp/","/perm   /",$oldBookFileName);
        $newBookLink = str_replace('*BASE URL IS HERE*', '../',$newBookFileName);
    }
    //update file names in file & move files
   //include ('updatefile.php');
   file_put_contents($oldBookLink, str_replace($oldBookFileName,     $newBookFileName, file_get_contents($oldBookLink)));
    //copy/move files from tmp to perm
    copy($oldBookLink, $newBookLink);
    }

I've tried using the full path (www.example.com/dir/file.php) and using the relative path (../dir/file.php). Also, all the links are correct, I echo'ed them out in an email and they are correct.

Anyone know what Im doing wrong? Something totally retarded? Please help.

Thank you.

Upvotes: 0

Views: 465

Answers (1)

Brock Amhurst
Brock Amhurst

Reputation: 497

You likely have the relative path wrong. Try using realpath() to see what path PHP is actually using.

For the full path you need to use the path on the server, not the http URL. So something like /home/username/public_html/dir/filename.doc instead of www.example.com/dir/filename.doc

Upvotes: 1

Related Questions