我正在尝试使用curl / php在网站上使用php / curl上传图像。该网站使用ajax / flash将图像上传到外部服务器。当我在网站上手动上传图像时,使用firebug,我只是收到响应(带永久链接),如果图像成功上传但我没有看到发布的参数和数据以及确切的位置。
需要上传图片的网址:
如何找到需要发送的参数才能在网站上成功上传图片?
答案 0 :(得分:3)
您提到的特定上传程序从以下网址中提取epsToken变量,然后将其用作上传文件的参数。
http://johannesburg.gumtree.co.za/c-GetEpsToken
就我而言,令牌是:
1:b6ac30fa715a395cf728ac29847b2516f701a8f291fd5243d5153eae41c10636
您可以看到我发送的上传请求here的完整POST数据。请记住,这是一个multipart / form-data请求,因此您可能需要调整curl / PHP代码来支持它。
基本上,通过POST请求提供了以下参数:
Filename = Image.png
b = 18
s = 1C5000
n = k
a = 1:b6ac30fa715a395cf728ac29847b2516f701a8f291fd5243d5153eae41c10636
v = k
r = 0
u = the actual image, sent as a multipart stream
Upload = Submit Query
我建议您分析其他参数并使用其他答案中的代码,以便成功上传图片。
答案 1 :(得分:2)
使用PHP和cURL上传图片。
function curl_post_request($url, $data, $referer='') {
$data = http_build_query($data); // seems to be required arrays should'nt be supported ? whatever.
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, true);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
curl_setopt($c, CURLOPT_REFERER, $referer);
curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($c, CURLOPT_HEADER, $headers);
curl_setopt($c, CURLINFO_HEADER_OUT, true);
curl_setopt($c, CURLOPT_VERBOSE, true);
$output = curl_exec($c);
var_dump(curl_getinfo($c, CURLINFO_HEADER_OUT));
//var_dump($data);
if($output === false) trigger_error('Erreur curl : '.curl_error($c),E_USER_WARNING);
curl_close($c);
return $output;
}
if(isset($_GET['GO'])) {
$data = array(
'pic1' => "@".realpath('image.jpg'),
'postedvar1' => 'test1',
'postedvar2' => 'test2'
);
$url = 'http://localhost/test/index.php';
$a = curl_post_request($url, $data);
var_dump($a);
} else {
print_r($_POST);
print_r($_FILES);
}
使用CURL + PHP通过远程表单上传图像
$info = array('test title','1234','virginia','@'.realpath('e:\wamp
\www\1.jpg'),'@'.realpath('e:\wamp\www\2.jpg'),'@'.realpath('e:\wamp\www
\3.jpg'),'@'.realpath('e:\wamp\www\4.jpg'),'test description');
$post->postAd($url, $info);
另请阅读此
http://www.maheshchari.com/upload-image-file-to-remote-server-with-php-curl/
并看到此链接
http://blog.smileylover.com/remote-upload-to-imageshackus-with-phpcurl/
和
http://blogs.digitss.com/php/curl-php/posting-or-uploading-files-using-curl-with-php/
答案 2 :(得分:1)
上传网站图片时出现问题 - 只是弹出错误
上传图片时出错。请检查图像大小 和尺寸,然后再试一次。如果您继续遇到问题,可以 切换到基本图像加载器。
对于每种类型的图像和基本图像加载器实际上也不可用!。