如何使用 php 发送多部分请求
How to send a multipart request with php
我想知道如何从 php 发送 multipart/form-data 编码的 post 请求。我已经在这里找到这段代码:
$destination = "http://yourdomain.com/yoururl";
$eol = "\r\n";
$data = '';
$mime_boundary=md5(time());
$data .= '--' . $mime_boundary . $eol;
$data .= 'Content-Disposition: form-data; name="somedata"' . $eol . $eol;
$data .= "Some Data" . $eol;
$data .= '--' . $mime_boundary . $eol;
$data .= 'Content-Disposition: form-data; name="somefile";
filename="filename.ext"' . $eol;
$data .= 'Content-Type: text/plain' . $eol;
$data .= 'Content-Transfer-Encoding: base64' . $eol . $eol;
$data .= chunk_split(base64_encode("Some file content")) . $eol;
$data .= "--" . $mime_boundary . "--" . $eol . $eol; // finish with two
eol's!!
$params = array('http' => array(
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data; boundary='
. $mime_boundary . $eol,
'content' => $data
));
$ctx = stream_context_create($params);
$response = @file_get_contents($destination, FILE_TEXT, $ctx);
(http://vedovini.net/2009/08/posting-multipart-form-data-using-php/)
我的问题是:如何定义应发送的文件?
(只是为了解释我喜欢做什么:用户上传一个带有简单 http 表单的文件,php 脚本接收它并且应该 "resend" 文件到另一个 url)。我还必须将 json 数组中的 1 个变量与文件一起发送。
使用 cURL 而不是 file_get_contents,关于将其用于多部分 POST 提交有一个类似的问题 here。
我想知道如何从 php 发送 multipart/form-data 编码的 post 请求。我已经在这里找到这段代码:
$destination = "http://yourdomain.com/yoururl";
$eol = "\r\n";
$data = '';
$mime_boundary=md5(time());
$data .= '--' . $mime_boundary . $eol;
$data .= 'Content-Disposition: form-data; name="somedata"' . $eol . $eol;
$data .= "Some Data" . $eol;
$data .= '--' . $mime_boundary . $eol;
$data .= 'Content-Disposition: form-data; name="somefile";
filename="filename.ext"' . $eol;
$data .= 'Content-Type: text/plain' . $eol;
$data .= 'Content-Transfer-Encoding: base64' . $eol . $eol;
$data .= chunk_split(base64_encode("Some file content")) . $eol;
$data .= "--" . $mime_boundary . "--" . $eol . $eol; // finish with two
eol's!!
$params = array('http' => array(
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data; boundary='
. $mime_boundary . $eol,
'content' => $data
));
$ctx = stream_context_create($params);
$response = @file_get_contents($destination, FILE_TEXT, $ctx);
(http://vedovini.net/2009/08/posting-multipart-form-data-using-php/) 我的问题是:如何定义应发送的文件? (只是为了解释我喜欢做什么:用户上传一个带有简单 http 表单的文件,php 脚本接收它并且应该 "resend" 文件到另一个 url)。我还必须将 json 数组中的 1 个变量与文件一起发送。
使用 cURL 而不是 file_get_contents,关于将其用于多部分 POST 提交有一个类似的问题 here。