Search code examples
phpdirectoryfopen

Using fopen() to write file into subdirectory


I already looked at this StackOverflow question and it didn't help (similarly titled).

I'm passing an image in from my Android application. If I type

$file = fopen('test.jpg', 'wb');

It works correctly and the image uploads; however, I want to allow for multiple uploads from android phones, so I want to randomize the name of the .jpg file so that I can save each new upload as a different name. I was trying this below:

$destination =  time() + rand(1, 1000) . ".jpg";
$url_destination = "/project_images/" . $destination;

$file = fopen($url_destination, 'wb');
fwrite($file, $binary);
fclose($file);

It doesn't write the file to the server, however. I tried different variations of the URL there - with 'project_images/', '/project_images/', even trying the full URL (which the aforementioned StackOverflow post corrected me on), and I still can't get it to write.

The permissions of the project_images folder are set to allow files to be written to it. Any ideas?


Solution

  • Your problem is "/project_images" which is a wrong absolute path.

    For it to work change it to "project_images/" or dirname(__FILE__).'/project_images/'.