【问题标题】:attach file as multipart/form-data content-type - Laravel将文件附加为 multipart/form-data 内容类型 - Laravel
【发布时间】:2014-10-30 15:49:12
【问题描述】:
我使用 FreshDesk API 作为票务系统。尝试发送附件时,说明它应该作为 multipart/form-data 内容类型发送。有人能解释一下这是怎么做到的吗?!
我如何发送附件:
$json = json_encode(
array(
"helpdesk_note" => array(
"body" => Input::get('reply'),
"user_id" => $requester_id,
"attachments" => Input::get('photo'),
"private" => true
)
)
);
【问题讨论】:
标签:
php
multipartform-data
【解决方案1】:
我不知道您如何查询 API,但如果您使用 CURL,只需设置适当的标头:
curl_setopt($ch , CURL_HTTPHEADER , "Content-Type: multipart/form-data" );
我个人推荐Guzzle,它有一个简洁明了的API。
在 Guzzle 中,您可以以更面向对象的方式修改您的标题。有几种方法可以完成您的任务。可能的方法可能是:
$client = new GuzzleHttp\Client();
$request = $client->createRequest('POST', 'https://url.com/to/post/to');
$request->setHeader('content-type', 'multipart/form-data');
// Set the data you need to
$response = $client->send($request);
var_dump($response);
Guzzle 顺便说一句,与 Laravel 集成是小菜一碟。只需在您的 composer.json 中要求它就可以了!