图片上传使用卷曲/ php
我想上传图像使用PHP /卷曲在网站上使用卷曲/ PHP。该网站使用ajax/flash将图像上传到外部服务器。当我使用萤火虫在网站上手动上传图片时,如果图片成功上传,我只会收到回应(带有永久链接),但我没有看到发布了哪些参数和数据,以及发布的具体内容。图片上传使用卷曲/ php
网页的网址,让图像需要上传:
如何找出参数需要什么,以获得在网站上成功上传的图像发送?
用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/
与网站的形象有些问题上传 - 它只是弹出一个错误
时出错上传你的图片。请检查图像尺寸 和尺寸,然后重试。如果你仍然有问题,你可以 切换到基本的图像加载器。
对于每种类型的图像和基本图像加载程序也实际上并不可用!
您提到的具体上传器从以下URL中提取epsToken变量,然后将其用作上传文件的参数。
http://johannesburg.gumtree.co.za/c-GetEpsToken
在我的情况下,令牌是:
1:b6ac30fa715a395cf728ac29847b2516f701a8f291fd5243d5153eae41c10636
你可以看到完整的POST数据的上传请求我做here。请记住,这是一个多部分/表单数据请求,因此您可能需要调整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
我建议你分析其他参数和使用来自其他答案代码,才能成功上传的图片。
这对我来说似乎是正确的答案。 @zista将需要从第一个网址获得密钥,然后根据您的发布数据发送图像。我也尝试上传一些图片,除令牌外,所有数据都是相同的。 (我仍然想知道你是如何找到令牌URL的) – Kyborek 2013-02-20 14:41:30
数据提取(包括url和所有其他变量)是使用HTTP拦截代理完成的。在这种情况下,我使用[Charles](http://www.charlesproxy.com/)。它是一个非常棒的工具,可以记录所有对服务器的请求,从而加快Web应用程序的开发速度。您甚至可以修改/拦截请求并将其发回。 – 2013-02-22 20:17:21
只是好奇,但你不能通过Google Chrome开发者工具中的网络标签提取相同的信息吗?为了拦截和修改请求,你需要像查尔斯那样的东西。 – 2013-02-22 21:25:09
你想直接发送到外部服务器?您无法观察Web服务器正在与外部服务器交谈的内容。 – 2013-02-13 19:49:25
不是直接...我将使用curl登录和使用相同的cookie以显示为真实用户。虽然有一些Ajax的东西,但它给了你一些参数。还有一些令牌可用。我想如果我找到参数的名称,我会很好。 – zista 2013-02-13 20:03:13
@zista你是什么意思“但我看不到什么参数和数据张贴”? – 2013-02-16 23:37:35