我想上傳圖像使用PHP /捲曲在網站上使用捲曲/ PHP。該網站使用ajax/flash將圖像上傳到外部服務器。當我使用螢火蟲在網站上手動上傳圖片時,如果圖片成功上傳,我只會收到迴應(帶有永久鏈接),但我沒有看到發佈了哪些參數和數據,以及發佈的具體內容。圖片上傳使用捲曲/ 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