无法打开流和权限被拒绝 - PHP

时间:2013-08-16 19:32:26

标签: php

我正在尝试将图像从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。

3 个答案:

答案 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');