1. <?php
  2. class FrontendUploadField extends UploadField {
  3. public function __construct($name, $title = null, SS_List $items = null) {
  4. parent::__construct($name, $title, $items);
  5. $this->setConfig('autoUpload', true)
  6. ->setConfig('canAttachExisting', false)
  7. ->setConfig('canPreviewFolder', false)
  8. ->setConfig('changeDetection', false)
  9. ->setTemplateFileButtons('FrontendUploadField_FileButtons');
  10. $this->getUpload()->setReplaceFile(false);
  11. }
  12. protected function saveTemporaryFile($tmpFile, &$error = null) {
  13. // prefix with unique id to avoid file name conflicts
  14. $title = $tmpFile['name'];
  15. $tmpFile['name'] = uniqid('', true) . $tmpFile['name'];
  16. $file = parent::saveTemporaryFile($tmpFile, $error);
  17. $file->Title = $title;
  18. $file->write();
  19. return $file;
  20. }
  21. public function attach(SS_HTTPRequest $request) {
  22. return $this->httpError(403);
  23. }
  24. public function handleItem(SS_HTTPRequest $request) {
  25. return $this->httpError(403);
  26. }
  27. public function handleSelect(SS_HTTPRequest $request) {
  28. return $this->httpError(403);
  29. }
  30. }