我正在尝试将图像从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。
答案 0 :(得分:2)
您需要指定desitination filename ,而不仅仅是目录。
这对我有用:
copy("http://i.imgur.com/avcsLXI.jpg","timg/avcsLXI.jpg");
请注意,出于安全原因,某些虚拟主机不允许将URL作为源路径,这仅在" fopen wrappers"已启用。
答案 1 :(得分:1)
如果timg
是一个文件夹,那就是你的问题。 copy()
适用于源和目标的FILES。你不能只有一个文件夹的目的地,因为复制将尝试用您要复制的文件替换该文件夹。所以
copy("http://i.imgur.com/avcsLXI.jpg","timg"); // folder only, WRONG
copy("http://i.imgur.com/avcsLXI.jpg","timg/thepic.jpg"); // correct, folder+file
答案 2 :(得分:0)
如果您正在寻找除了fopen或curl之外的其他选择,您可以使用wget:
shell_exec('wget -P timg/avcsLXI.jpg http://i.imgur.com/avcsLXI.jpg');