我正尝试copy()
使用copy()
命令从远程服务器发送文件,如下所示:
<?php
error_reporting(E_ALL);
$url = $_GET['url'];
if (copy( $url, '/tmp/copy_from_url.jpeg'))
{
echo 'copied';
}
?>
似乎工作时显示copied
但是没有找到文件。
关于如何在此处追踪问题的任何想法?
我正在MAMP
Lion
上运行最新版本。相关文件为.jpeg
,allow_url_fopen
已开启。
编辑:文件夹Applications/MAMP/tmp
实际上是/private/tmp
的符号链接,其中文件被复制但不可见。
有没有办法更改PHP
tmp文件夹?
答案 0 :(得分:0)
您的代码应该没问题,但我认为最好使用file_get_contents()
和file_put_contents()
更可靠的原因,例如
<?php
$source = $url;
$destination = '/tmp/copy_from_url.jpeg';
$data = file_get_contents($source);
$handle = fopen($destination, "w");
fwrite($handle, $data);
fclose($handle);
?>
看看是否有效?
答案 1 :(得分:0)
如果这些是您的权限ls -l /tmp
lrwxr-xr-x@ 1 root wheel 11 Jul 20 23:44 /tmp -> private/tmp – ian 9 hours
看起来普通流程没有写权限。最后一个r-x
表示te other users
(不是root
或wheel
组)缺少w
写权限。通常Apache在一个单独的帐户下运行,这就是为什么PHP也无法访问它。
答案 2 :(得分:0)
您应该将MAMP设置中的apache和mysql服务器的用户从“www / mysql”更改为“user / user”,其中“user”是您的用户 - http://screencast.com/t/wzyPmFTmj6LC