Php 将图像从URL复制到Web服务器文件系统

Php 将图像从URL复制到Web服务器文件系统,php,Php,尝试构建一个表单,用于通过url上传图像,并将其复制到我的服务器 正在搜索以下线程: 我试过这个: $pic = Submitted image URL $pic = Submitted image name . ".jpg" copy($pic, $_SERVER['DOCUMENT_ROOT'] . '/mydir/' . $picname); 结果: 警告:copy(mydir/mypic.jpg)[function.copy]:无法打开流:第42行的/h

尝试构建一个表单,用于通过url上传图像,并将其复制到我的服务器

正在搜索以下线程:

我试过这个:

$pic = Submitted image URL
$pic = Submitted image name . ".jpg"

copy($pic, $_SERVER['DOCUMENT_ROOT'] . '/mydir/' . $picname);
结果:

警告:copy(mydir/mypic.jpg)[function.copy]:无法打开流:第42行的/home/user/public_html/mysite.ca/upload.php中没有此类文件或目录

这:

结果:

警告:fwrite()希望参数1是resource,布尔值在第47行的/home/user/public_html/mysite.ca/upload.php中给出

警告:fclose()要求参数1为resource,布尔值在第48行的/home/user/public_html/mysite.ca/upload.php中给出

目录权限为777,服务器上任何地方都没有个人信息。任何日志中都没有错误,我不确定如何对此进行故障排除?

$fp=fopen($\u SERVER['DOCUMENT\u ROOT']./mydir/'.$picname,“w”)这似乎是个问题。
这可以分为两个部分,例如,
$path=$\u SERVER['DOCUMENT\u ROOT']/mydir/'.$picname
$fp=fopen($path,“w”)。现在您可以
echo$path
并查看它是否正确?如果仍然存在问题,请尝试使用相对路径,例如,
$path=“./mydir/$picname”;echo$path
it并直接转到该文件夹以检查文件夹是否存在。

$fp=fopen($\u SERVER['DOCUMENT\u ROOT']./mydir/'.$picname,“w”)这似乎是个问题。
这可以分为两个部分,例如,
$path=$\u SERVER['DOCUMENT\u ROOT']/mydir/'.$picname
$fp=fopen($path,“w”)。现在您可以
echo$path
并查看它是否正确?如果仍然存在问题,请尝试使用相对路径,例如,
$path=“./mydir/$picname”;echo$path
it并直接转到该文件夹以检查该文件夹是否存在

警告:copy(mydir/mypic.jpg)[function.copy]:无法打开流:第42行的/home/user/public_html/mysite.ca/upload.php中没有此类文件或目录

听起来您试图将文件复制到的目标路径是错误的

您是否检查了路径实际包含的内容

var_dump($_SERVER['DOCUMENT_ROOT'] . '/mydir/' . $picname);

除了当前的错误,如果您接受客户端发送的任何路径/文件名信息,以生成用于保存映像的名称,而不受任何进一步的控制/限制,那么您就是在服务器上挖了一个巨大的安全漏洞

警告:copy(mydir/mypic.jpg)[function.copy]:无法打开流:第42行的/home/user/public_html/mysite.ca/upload.php中没有此类文件或目录

听起来您试图将文件复制到的目标路径是错误的

您是否检查了路径实际包含的内容

var_dump($_SERVER['DOCUMENT_ROOT'] . '/mydir/' . $picname);


除了当前的错误,如果您接受客户端发送的任何路径/文件名信息来构建用于保存图像的名称,而不受任何进一步的控制/限制,那么您就是在服务器上撕开了一个巨大的安全漏洞。

只有在您的服务器启用了该选项的情况下,才可以直接打开类似文件的URL


fopen()
失败并返回
FALSE
,但您没有检查它。您的文件名或目录权限有问题。

只有在您的服务器启用了该选项的情况下,才可以像文件一样直接打开URL


fopen()
失败并返回
FALSE
,但您没有检查它。您的文件名或目录权限有问题。

目录名是公共目录之外定义的常量,用这种方式更容易描述。此表单仅用于上传大量图片。var_dump()字符串(79)“/home/user/public_html/mysite.ca/mydir/mypic.jpg”以及运行脚本的同一文件夹中的文件夹
mydir
…?如果没有,您必须先创建它(
mkdir
),然后才能将文件复制到其中!目录名是公共目录之外定义的常量,用这种方式更容易描述。此表单仅用于上传大量图片。var_dump()字符串(79)“/home/user/public_html/mysite.ca/mydir/mypic.jpg”以及运行脚本的同一文件夹中的文件夹
mydir
…?如果没有,您必须先创建它(
mkdir
),然后才能将文件复制到其中!如果在localhost上工作,这会在php.ini中吗?在web上的cPanel上找不到对它的任何引用,管理员需要做些什么?
allow\u url\u fopen=off
会在使用
copy
时生成不同的错误消息,但是…如果在localhost上工作,这会在php.ini中吗?在web上的cPanel上找不到对它的任何引用,管理员需要做些什么?
allow\u url\u fopen=off
在使用
copy
时会生成不同的错误消息…