* @return string
* @throws \Exception
*/
- public function uploadFreeFile($uploadedFile, $attribute)
+ public function uploadFreeFile($uploadedFile, $attribute, $operation = 'move')
{
$field = $this->getField($attribute);
if (!$field instanceof FilesOrURL) {
}
$name = \Cubist\Util\Files\Files::tidyName($name);
$dest = $dir . $name;
+ if (is_link($dest)) {
+ unlink($dest);
+ }
if (file_exists($dest)) {
unlink($dest);
}
- if ($uploadedFile instanceof UploadedFile) {
- move_uploaded_file($uploadedFile->getPathname(), $dest);
- } else {
- rename($uploadedFile->getPathname(), $dest);
+ if ($operation === 'move') {
+ if ($uploadedFile instanceof UploadedFile) {
+ move_uploaded_file($uploadedFile->getPathname(), $dest);
+ } else {
+ rename($uploadedFile->getPathname(), $dest);
+ }
+ } else if ($operation === 'copy') {
+ copy($uploadedFile->getPathname(), $dest);
}
return $name;
}