public function saveInto(DataObjectInterface $record) { if (!isset($_FILES[$this->name])) { return false; } $fileClass = File::get_class_for_file_extension(pathinfo($_FILES[$this->name]['name'], PATHINFO_EXTENSION)); if ($this->relationAutoSetting) { // assume that the file is connected via a has-one $hasOnes = $record->has_one($this->name); // try to create a file matching the relation $file = is_string($hasOnes) ? Object::create($hasOnes) : new $fileClass(); } else { $file = new $fileClass(); } $this->upload->loadIntoFile($_FILES[$this->name], $file, $this->folderName); if ($this->upload->isError()) { return false; } $file = $this->upload->getFile(); if ($this->relationAutoSetting) { if (!$hasOnes) { return false; } // save to record $record->{$this->name . 'ID'} = $file->ID; } return $this; }
public function saveInto(DataObject $record) { if (!isset($_FILES[$this->name])) { return false; } if ($this->relationAutoSetting) { // assume that the file is connected via a has-one $hasOnes = $record->has_one($this->name); // try to create a file matching the relation $file = is_string($hasOnes) ? Object::create($hasOnes) : new File(); } else { $file = new File(); } $this->upload->loadIntoFile($_FILES[$this->name], $file, $this->folderName); if ($this->upload->isError()) { return false; } $file = $this->upload->getFile(); if ($this->relationAutoSetting) { if (!$hasOnes) { return false; } // save to record $record->{$this->name . 'ID'} = $file->ID; } }
public function saveInto(DataObjectInterface $record) { if (!isset($_FILES[$this->name])) { return false; } $fileClass = File::get_class_for_file_extension(File::get_file_extension($_FILES[$this->name]['name'], PATHINFO_EXTENSION)); if ($this->relationAutoSetting) { // assume that the file is connected via a has-one $objectClass = $record->hasOne($this->name); if ($objectClass === 'File' || empty($objectClass)) { // Create object of the appropriate file class $file = Object::create($fileClass); } else { // try to create a file matching the relation $file = Object::create($objectClass); } } else { if ($record instanceof File) { $file = $record; } else { $file = Object::create($fileClass); } } $this->upload->loadIntoFile($_FILES[$this->name], $file, $this->getFolderName()); if ($this->upload->isError()) { return false; } if ($this->relationAutoSetting) { if (!$objectClass) { return false; } $file = $this->upload->getFile(); $record->{$this->name . 'ID'} = $file->ID; } return $this; }
/** * Save an file passed from a form post into this object. * DEPRECATED Please instanciate an Upload-object instead and pass the file * via {Upload->loadIntoFile()}. * * @param $tmpFile array Indexed array that PHP generated for every file it uploads. * @return Boolean|string Either success or error-message. */ function loadUploaded($tmpFile) { user_error('File::loadUploaded is deprecated, please use the Upload class directly.', E_USER_NOTICE); $upload = new Upload(); $upload->loadIntoFile($tmpFile, $this); return $upload->isError(); }
public function imageupload() { if (!Member::currentUserID()) { $return = array('error' => 1, 'text' => "Cannot upload there"); return Convert::raw2json($return); } if (isset($_FILES['NewImage']) && ($tempfile = $_FILES['NewImage'])) { // validate // $allowed = array('jpg', 'jpeg', 'gif', 'png', 'ico'); $nameBits = explode('.', $tempfile['name']); $ext = end($nameBits); if (!in_array(strtolower($ext), $allowed)) { $return = array('error' => 1, 'text' => "Your image must be in jpg, gif or png format"); return Convert::raw2json($return); } $maxsize = $_POST['MAX_FILE_SIZE']; if ($tempfile['size'] > $maxsize) { $size = number_format($maxsize / 1024 / 1024, 2) . 'MB'; $return = array('error' => 1, 'text' => "Your image must be smaller than {$size}"); return Convert::raw2json($return); } // upload // $upload = new Upload(); $file = new Image(); $upload->loadIntoFile($tempfile, $file); if ($upload->isError()) { return false; } $file = $upload->getFile(); $return = array('link' => $file->Link()); return Convert::raw2json($return); } else { // no file to upload return false; } }