2012-08-06 78 views
1

我使用Curl庫來模擬「multipart-form-data」提交,然後我發現我需要生成一個唯一的字符串,但我不知道該怎麼做。如何在PHP中生成邊界?

例如:

Content-Type: multipart/form-data; 
boundary=---------------------------491299511942 
Content-Length: 95418 
-----------------------------491299511942 
Content-Disposition: form-data; name="a" 
-----------------------------491299511942 
Content-Disposition: form-data; name="b" 
/page.asp 
-----------------------------491299511942 
Content-Disposition: form-data; name="c" 
-----------------------------491299511942 
Content-Disposition: form-data; name="d" 
true 
-----------------------------491299511942 
Content-Disposition: form-data; name="e" 
1 
-----------------------------491299511942 
Content-Disposition: form-data; name="f" 

如何產生的邊界?從圖書館或只是一些黑客?

編輯:在這個例子中邊界= 491299511942

回答

3

如果使用捲曲你不需要準備數據「手動」

$post_data = array(
    'a' => '@/absolute/path/to/file', 
    'b' => '@/absolute/path/to/file', 
); 
curl_setopt($ch, CURLOPT_POST, true) 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
+1

嗯,但是邊界呢? – Stacker 2012-08-06 09:32:33

+0

我使用的LiveHttpHeaders,我看到數據發送像上面的例子...通常我需要準備這樣的數據? – Stacker 2012-08-06 09:33:57

+3

如果給出'@filename'POST數據,Curl將正確地生成多部分/表單數據請求。您不需要手動生成它們。如果你不需要傳輸文件,那麼你不需要multipart/form-data來開始。 – SirDarius 2012-08-06 09:35:37

2

要回答的實際問題,你可以這樣做這個:

$boundary = hash('sha256', uniqid('', true));