我想通过php curl将图像从我的服务器上传到另一台服务器。我在localhost上测试了我的脚本它可以工作,但在服务器上它不工作。
以下是我的步骤:
第一步
我将图片上传到我的服务器。图像的路径为"imgs/myimage.jpg"
第二步
我将此代码从我的服务器上传到另一台服务器。
$file_name_with_full_path = realpath("imgs/myimage.jpg");
$postdata = array('myfile'=>'@'.$file_name_with_full_path);
$headers = array("Content-Type:multipart/form-data");
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, "http://www.secondserver.com/image.php");
$data = curl_exec($ch);
curl_close($ch);
此代码来自第二台服务器的image.php。
print_r($_FILES["myfile"]);
我在localhost上测试了这段代码。但在服务器上它无法正常工作并显示错误。
Notice: Undefined index: myfile in ....
我尝试使用命令
获取服务器上图像的完整路径echo realpath("imgs/myimage.jpg");
它显示了这个:
@/home/admin/domains/mydomain.com/public_html/member/imgs/myimage.jpg
我不确定它的权限是什么?但我还设置了文件权限是777。
我该怎么做才能解决这个问题?
我试图找到一整天的解决方案,但没有成功。
更新
我将代码应用于另一台服务器上进行测试。有效。 我尝试使用命令
获取服务器上图像的完整路径echo realpath("imgs/myimage.jpg");
它显示了这个:
@/var/www/vhosts/myuser/mydomain.com/imgs/myimage.jpg
我想可能是关于Config Server。 我应该设置吗?
答案 0 :(得分:0)
不确定您是否更新了此处发布的代码,但之前从未设置$postdata
。在第二行中,您有$postimg = array('myfile'=>'@'.$file_name_with_full_path);
然后你做curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata);
请使用正确的变量($postimg
),你应该好好去。想知道它如何在当地工作:)