2012-08-06 3 views
1

Curl 라이브러리를 사용하여 "multipart-form-data"제출을 시뮬레이션 한 다음 고유 한 문자열을 생성해야한다는 것을 알았지 만 그 방법을 모릅니다. 예를 들어Boundary in 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

+0

저는 LiveHttpHeaders를 사용하고 있는데 위의 예제처럼 데이터를 보았습니다 ... 일반적으로 이와 같은 데이터를 준비해야합니까? – Stacker

+3

'@filename'POST 데이터가 있으면 Curl은 multipart/form-data 요청을 올바르게 생성합니다. 수동으로 생성 할 필요는 없습니다. 파일을 전송할 필요가 없다면 다중 부분/양식 데이터가 필요하지 않습니다. – SirDarius

2

당신이 뭔가를 할 수 있으며, 실제 질문에 대답하기를 사용하는 경우 이 :

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