php curl传输FTP后图像损坏
我使用下面的代码来传输图像,它正在工作,只是传输后jpg被破坏了。表示图像格式无效,显示模糊图像 我尝试使用没有curl的常规php,得到了相同的结果 有人知道为什么我尝试的任何东西都会起作用,但会破坏图像。jpgphp curl传输FTP后图像损坏,php,curl,ftp,Php,Curl,Ftp,我使用下面的代码来传输图像,它正在工作,只是传输后jpg被破坏了。表示图像格式无效,显示模糊图像 我尝试使用没有curl的常规php,得到了相同的结果 有人知道为什么我尝试的任何东西都会起作用,但会破坏图像。jpg $curl = curl_init(); $fh = fopen("test.jpg", 'w'); curl_setopt($curl, CURLOPT_URL, "ftp://{$serverInfo['user']}: {$servererInfo['password']}
$curl = curl_init();
$fh = fopen("test.jpg", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://{$serverInfo['user']}: {$servererInfo['password']}@{$serverInfo['ftp1.server.com']}/{$serverInfo['For_Web/Web Images/Full Size/00-99/file']}");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
fwrite($fh, $result);
fclose($fh);
curl_close($curl);`
存在一些问题 您应该以二进制模式打开文件进行写入,也就是说
$fh = fopen("test.jpg", 'wb');
curl_exec返回bool(success),而不是文件的内容,应该将文件传递给CURLOPT_文件
您应该使用CURLOPT_USERPWD设置用户名/密码,但不确定URL方式是否也可以使用
您应该设置CURLOPT_BINARYTRANSFER
工作样品
$curl = curl_init();
$fh = fopen("fips.exe", 'wb');
curl_setopt($curl, CURLOPT_URL, 'ftp://ftp.sunet.se/pub/FreeBSD/tools/fips.exe');
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FILE, $fh);
curl_setopt($curl, CURLOPT_USERPWD, 'anonymous:olle');
$result = curl_exec($curl);
fclose($fh);
curl_close($curl);
尝试
$result=file_get_内容(“ftp://{$serverInfo['user']}:{$servererInfo['password']}}{$serverInfo['ftp1.server.com']}/{$serverInfo['For_Web/Web image/Full Size/00-99/file']})
可能将CURLOPT\u binarytranfer
添加到您的curl\u setopt()
我尝试使用二进制模式,但仍然存在相同的问题。这是我的代码$curl=curl_init()$fh=fopen(“test.jpg”,“wb”);curl_setopt($curl,CURLOPT_URL,“ftp://{$serverInfo['wps']}:{$servererInfo['wps-pass']}}{$serverInfo['ftp1.wpsstatic.com']}/{$serverInfo['For_Web/Web image/Full Size/00-99/73-3624.jpg']);curl_setopt($curl,CURLOPT_BINARYTRANSFER,1)$结果=curl\u exec($curl);fwrite($fh,$result);fclose($fh);curl_close($curl);