protected function getMimePart($name, $value, $mime_boundary)
{
$data = '';
$eol = "\r\n";
if (is_array($value)) {
if (is_array($value[0])) {
foreach ($value[0] as $v) {
$data .= $this->getMimePart($name, array($v, $value[1]), $mime_boundary);
}
return $data;
}
$data .= '--' . $mime_boundary . $eol;
if (is_resource($value[0])) {
$data .= 'Content-Disposition: form-data; name="' . $name . '"; filename="' . $name . '"' . $eol;
$data .= 'Content-Type: jcr-value/' . strtolower(PropertyType::nameFromValue($value[1])) . '; charset=UTF-8' . $eol;
$data .= 'Content-Transfer-Encoding: binary' . $eol . $eol;
$data .= stream_get_contents($value[0]) . $eol;
fclose($value[0]);
} else {
$data .= 'Content-Disposition: form-data; name="' . $name . '"' . $eol;
$data .= 'Content-Type: jcr-value/' . strtolower(PropertyType::nameFromValue($value[1])) . '; charset=UTF-8' . $eol;
$data .= 'Content-Transfer-Encoding: 8bit' . $eol . $eol;
switch ($value[1]) {
case PropertyType::DATE:
$data .= $this->valueConverter->convertType($value[0], PropertyType::STRING);
break;
default:
$data .= $value[0];
}
$data .= $eol;
}
} else {
if (is_array($value)) {
foreach ($value as $v) {
$data .= $this->getMimePart($name, $v, $mime_boundary);
}
return $data;
}
$data .= '--' . $mime_boundary . $eol;
$data .= 'Content-Disposition: form-data; name="' . $name . '"' . $eol;
$data .= 'Content-Type: text/plain; charset=UTF-8' . $eol;
$data .= 'Content-Transfer-Encoding: 8bit' . $eol . $eol;
//$data .= '--' . $mime_boundary . $eol;
$data .= $value . $eol;
}
return $data;
}