$this->repo->setDescription($postData['description']);
$bChanged = false;
- foreach ($postData['files'] as $arFile) {
- if ($arFile['content'] == '' && $arFile['name'] == '') {
+ foreach ($postData['files'] as $num => $arFile) {
+ $bUpload = false;
+ if ($_FILES['files']['error'][$num]['upload'] == 0) {
+ //valid file upload
+ $bUpload = true;
+ } else if ($arFile['content'] == '' && $arFile['name'] == '') {
//empty (new) file
continue;
}
$name = $this->sanitizeFilename($arFile['name']);
if ($name == '') {
- $name = $this->getNextNumberedFile('phork')
- . '.' . $arFile['type'];
+ if ($bUpload) {
+ $name = $this->sanitizeFilename($_FILES['files']['name'][$num]['upload']);
+ } else {
+ $name = $this->getNextNumberedFile('phork')
+ . '.' . $arFile['type'];
+ }
}
$bNew = false;
if (!isset($orignalName) || $orignalName == '') {
//new file
$bNew = true;
+ if (strpos($name, '.') === false) {
+ //automatically append file extension if none is there
+ $name .= '.' . $arFile['type'];
+ }
} else if (!$this->repo->hasFile($orignalName)) {
//unknown file
//FIXME: Show error message
->addArgument($file->getFilename())
->execute();
$bChanged = true;
+ } else if ($bUpload) {
+ move_uploaded_file(
+ $_FILES['files']['tmp_name'][$num]['upload'], $file->getPath()
+ );
+ $command = $vc->getCommand('add')
+ ->addArgument($file->getFilename())
+ ->execute();
+ $bChanged = true;
} else if ($bNew || $file->getContent() != $arFile['content']) {
file_put_contents($file->getPath(), $arFile['content']);
$command = $vc->getCommand('add')