我需要在帖子数据中上传3个文件和变量。这就是我的电话 -
$data['type1'] = new CurlFile($file1);
$data['type2'] = new CurlFile($file2);
$data['type3'] = new CurlFile($file3);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data, "var1: $val1", "var2: $val2");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data', "headkey: $headkeyValue"));
我无法从苗条框架中获取$app->request()->post('var1');
。它是空的。
headkey
作为$app->request()->headers('headkey');
答案 0 :(得分:1)
这是因为使用HTTP POST方法上传的所有文件都在$_FILES
全局变量中。这就是你无法通过这种方式访问文件的原因
$app->request()->post('val1');
但您可以使用$_FILES
$_FILES
说明
通过HTTP POST方法上传到当前脚本的关联项目数组。 POST方法上传部分概述了此数组的结构。
答案 1 :(得分:1)
这就是我对ssingh的答案所做的:
$data['type1'] = new CurlFile($file1);
$data['type2'] = new CurlFile($file2);
$data['type3'] = new CurlFile($file3);
//New Code Added
$data['var1'] = "$val1";
$data['var2'] = "$val2";
//removed the trailing string
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
答案 2 :(得分:0)
这里是样本卷曲请求
$curlFile = curl_file_create($uploaded_file_name_with_full_path);
$post = array('val1' => 'value','val2' => 'value','file_contents'=> $curlFile );
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$your_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);
不要忘记放置合适的标题
你也可以在这里找到好的来源
Curl File Upload
通过CURL发送文件。确保您在上面的代码中通过file_contents
密钥传递文件。