本文整理汇总了PHP中Am_HttpRequest::addUpload方法的典型用法代码示例。如果您正苦于以下问题:PHP Am_HttpRequest::addUpload方法的具体用法?PHP Am_HttpRequest::addUpload怎么用?PHP Am_HttpRequest::addUpload使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Am_HttpRequest
的用法示例。
在下文中一共展示了Am_HttpRequest::addUpload方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _sendMail
protected function _sendMail()
{
$request = new Am_HttpRequest(self::API_ENDPOINT, Am_HttpRequest::METHOD_POST);
$params = array();
$params['api_user'] = $this->_api_user;
$params['api_key'] = $this->_api_key;
$part = new Zend_Mail_Part(array('raw' => $this->header . Zend_Mime::LINEEND . $this->body));
$this->_extractHeaderToParams($part, 'to', $params);
$this->_extractHeaderToParams($part, 'cc', $params);
$this->_extractHeaderToParams($part, 'bcc', $params);
$this->_extractHeaderToParams($part, 'from', $params, false);
$this->_extractHeaderToParams($part, 'reply-to', $params, false);
$subject = $part->getHeader('subject');
if (strpos($subject, '=?') === 0) {
$subject = mb_decode_mimeheader($subject);
}
$params['subject'] = $subject;
$canHasAttacments = false;
//message
list($type) = explode(";", $part->getHeader('content-type'));
if ($type == 'multipart/alternative') {
$msgPart = $part->getPart(2);
} else {
$msgPart = $part->isMultipart() ? $part->getPart(1) : $part;
if ($msgPart->isMultipart()) {
$msgPart = $msgPart->getPart(2);
//html part
}
$canHasAttacments = true;
}
list($type) = explode(";", $msgPart->getHeader('content-type'));
$encoding = $msgPart->getHeader('content-transfer-encoding');
$content = $msgPart->getContent();
if ($encoding && $encoding == 'quoted-printable') {
$content = quoted_printable_decode($content);
} else {
$content = base64_decode($content);
}
switch ($type) {
case 'text/plain':
$params['text'] = $content;
break;
case 'text/html':
$params['html'] = $content;
break;
default:
throw new Zend_Mail_Transport_Exception("SendGrid API: unknown content-type: " . $type);
}
//attachments
$handlers = array();
if ($canHasAttacments) {
if ($part->isMultipart()) {
$params['files'] = array();
for ($i = 2; $i <= $part->countParts(); $i++) {
$attPart = $part->getPart($i);
$encoding = $attPart->getHeader('content-transfer-encoding');
$disposition = $attPart->getHeader('content-disposition');
preg_match('/filename="(.*)"/', $disposition, $m);
$filename = $m[1];
$content = $attPart->getContent();
if ($encoding && $encoding == 'quoted-printable') {
$content = quoted_printable_decode($content);
} else {
$content = base64_decode($content);
}
$f = tmpfile();
array_push($handlers, $f);
fwrite($f, $content);
$request->addUpload("files[{$filename}]", $f, $filename);
}
}
}
$request->addPostParameter($params);
$response = $request->send();
foreach ($handlers as $f) {
fclose($f);
}
if ($response->getStatus() != 200) {
throw new Zend_Mail_Transport_Exception("SendGrid API: unexpected response: " . $response->getBody());
}
}