private function _uploadFilesForField($field, &$submission, $fieldsContent)
{
$uploadedFiles = array();
// Get folder
$folderId = $field->getFieldType()->resolveSourcePath();
// Single file upload
if (!empty($_FILES[$field->handle]['name'])) {
// Upload file
$file = $_FILES[$field->handle];
$fileId = $this->_uploadFile($file, $folderId);
if (is_numeric($fileId)) {
$uploadedFiles[] = $fileId;
}
} elseif (isset($fieldsContent['filesNames']) && isset($fieldsContent['filesNames'][$field->handle])) {
foreach ($fieldsContent['filesNames'][$field->handle] as $fileName) {
foreach ($_FILES as $key => $possibleFile) {
if (isset($possibleFile['name']) && $possibleFile['name'] == $fileName) {
// Upload file
$fileId = $this->_uploadFile($possibleFile, $folderId);
if (is_numeric($fileId)) {
$uploadedFiles[] = $fileId;
// Remove from $_FILES so we can't find again if we have more than one multiple file upload field
unset($_FILES[$key]);
}
}
}
}
}
// Add files to submission
$submission->getContent()->setAttribute($field->handle, $uploadedFiles);
}