I am trying to write a code that will copy an image from URL to a relative path on my server with a random file name and echo back the final url. I have 2 problems:
- It doesn't work with relative path. If I don't declare the path, the function works but the image is being saved on the same folder of the PHP file. If I do specify the folder, it doesn't return any error but I don't see the image on my server.
- The echo function always return an empty string.
I am a client side programer so PHP is not my thing... I would appreciate any help.
Here is the code:
<?php
$url = $_POST['url'];
$dir = 'facebook/';
$newUrl;
copy($url, $dir . get_file_name($url));
echo $dir . $newUrl;
function get_file_name($copyurl) {
$ext = pathinfo($copyurl, PATHINFO_EXTENSION);
$newName = substr(md5(rand()), 0, 10) . '.' . $ext;
$newUrl = $newName;
return $newName;
}
EDIT:
Here is the fixed code if anyone is interested:
<?php
$url = $_POST['url'];
$dir = 'facebook/';
$newUrl = "";
$newUrl = $dir . generate_file_name($url);
$content = file_get_contents($url);
$fp = fopen($newUrl, "w");
fwrite($fp, $content);
fclose($fp);
echo $newUrl;
function generate_file_name($copyurl) {
$ext = pathinfo($copyurl, PATHINFO_EXTENSION);
$newName = substr(md5(rand()), 0, 10) . '.' . $ext;
return $newName;
}