我正试图从https://i.stack.imgur.com/KkoAp.jpg到localhost。它给了我一个
警告:
copy(https://i.stack.imgur.com/KkoAp.jpg)
[function.copy]:无法打开流:/var/www/html/test/timg
中的权限被拒绝
文件夹timg
已获得777访问
copy("https://i.stack.imgur.com/KkoAp.jpg","timg/avcsLXI.jpg");
move_uploaded_file()
抛出相同错误
我见过各种各样的例子,但没有看到一个有副本。我不想为此使用fopen或curl。
您需要指定目标文件名,而不仅仅是目录。
这对我有效:
copy("http://i.imgur.com/avcsLXI.jpg","timg/avcsLXI.jpg");
请注意,出于安全原因,一些网络主机不允许URL作为源路径,这只有在启用了"fopen wrappers"的情况下才有效。
如果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
如果您正在寻找fopen或curl之外的替代方案,可以使用wget:
shell_exec('wget -P timg/avcsLXI.jpg http://i.imgur.com/avcsLXI.jpg');