1

我正在尝试将图像从http://i.imgur.com/avcsLXI.jpg复制到 localhost。它给了我一个

警告:copy(http://i.imgur.com/avcsLXI.jpg)[function.copy]:无法打开流:权限被拒绝/var/www/html/test/timg

该文件夹timg已获得 777 访问权限

copy("http://i.imgur.com/avcsLXI.jpg","timg/avcsLXI.jpg");

move_uploaded_file()抛出同样的错误

我见过各种各样的例子,但没有看到一个有副本的例子。我不想为此使用 fopen 或 curl 。

4

3 回答 3

3

您需要指定目标文件名,而不仅仅是目录。

这对我有用:

copy("http://i.imgur.com/avcsLXI.jpg","timg/avcsLXI.jpg");

请注意,出于安全原因,某些网络主机不允许 URL 作为源路径,这仅在启用“fopen wrappers”时才有效。

于 2013-08-16T19:35:31.853 回答
1

如果timg是文件夹,那就是你的问题。copy()适用于源和目标的文件。你不能只有一个文件夹作为目标,因为复制会尝试用你正在复制的文件替换文件夹。所以

copy("http://i.imgur.com/avcsLXI.jpg","timg"); // folder only, WRONG
copy("http://i.imgur.com/avcsLXI.jpg","timg/thepic.jpg"); // correct, folder+file
于 2013-08-16T19:36:21.357 回答
0

如果您正在寻找 fopen 或 curl 以外的替代方法,您可以使用 wget:

shell_exec('wget -P timg/avcsLXI.jpg http://i.imgur.com/avcsLXI.jpg');
于 2013-08-16T19:53:39.420 回答