我正在尝试编写一个代码,该代码将使用随机文件名将图像从URL复制到我服务器上的相对路径,并回显最终的URL。 我有两个问题:
我是客户端程序员,所以PHP不是我的东西......我将不胜感激任何帮助。
以下是代码:
<?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;
}
修改
如果有人感兴趣,这是固定代码:
<?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;
}
答案 0 :(得分:4)
使用
copy('http://www.google.co.in/intl/en_com/images/srpr/logo1w.png', '/tmp/file.jpeg');
或
//Get the file
$content = file_get_contents("http://www.google.co.in/intl/en_com/images/srpr/logo1w.png");
//Store in the filesystem.
$fp = fopen("/location/to/save/image.jpg", "w");
fwrite($fp, $content);
fclose($fp);
答案 1 :(得分:2)
您应该使用file_get_contents
或curl来下载文件。另请注意,函数内的$newUrl
是本地的,并且此赋值不会更改全局$newUrl
变量的值,因此您无法在函数外部看到它。第3行中的$newUrl;
语句没有任何意义。