Ejemplo n.º 1
0
 /**
  * Reads a MIME file and creates a SavedMessage model from it.
  * 
  * @param string $path Relative path from file_storage_path or tmpdir where the MIME file is stored
  * @param bookean $isTempFile Indicates if path it relative from tmpdir or file_storage_path
  * @return SavedMessage
  */
 public function createFromMimeFile($path, $isTempFile = false)
 {
     $fullPath = $isTempFile ? \GO::config()->tmpdir . $path : \GO::config()->file_storage_path . $path;
     $file = new \GO\Base\Fs\File($fullPath);
     if (!$file->exists()) {
         throw new \Exception("E-mail message file does not exist!");
     }
     $mimeData = $file->contents();
     return $this->createFromMimeData($mimeData);
 }
Ejemplo n.º 2
0
 protected function beforeSubmit(&$response, &$model, &$params)
 {
     if (isset($_FILES['attachments']['tmp_name'][0]) && is_uploaded_file($_FILES['attachments']['tmp_name'][0])) {
         $file = new \GO\Base\Fs\File($_FILES['attachments']['tmp_name'][0]);
         $fileWithName = new \GO\Base\Fs\File($_FILES['attachments']['name'][0]);
         $model->content = $file->contents();
         $model->extension = $fileWithName->extension();
     }
     return parent::beforeSubmit($response, $model, $params);
 }
Ejemplo n.º 3
0
 protected function actionHandleUploads($params)
 {
     if (!isset(\GO::session()->values['files']['uploadqueue'])) {
         \GO::session()->values['files']['uploadqueue'] = array();
     }
     try {
         $chunkTmpFolder = new \GO\Base\Fs\Folder(\GO::config()->tmpdir . 'juploadqueue/chunks');
         $tmpFolder = new \GO\Base\Fs\Folder(\GO::config()->tmpdir . 'juploadqueue');
         $tmpFolder->create();
         $chunkTmpFolder->create();
         $count = 0;
         while ($uploadedFile = array_shift($_FILES)) {
             if (isset($params['jupart'])) {
                 $originalFileName = $uploadedFile['name'];
                 $uploadedFile['name'] = $uploadedFile['name'] . '.part' . $params['jupart'];
                 $chunkTmpFolder->create();
                 \GO\Base\Fs\File::moveUploadedFiles($uploadedFile, $chunkTmpFolder);
                 if (!empty($params['jufinal'])) {
                     $file = new \GO\Base\Fs\File($tmpFolder . '/' . $originalFileName);
                     $fp = fopen($file->path(), 'w+');
                     for ($i = 1; $i <= $params['jupart']; $i++) {
                         $part = new \GO\Base\Fs\File($chunkTmpFolder . '/' . $originalFileName . '.part' . $i);
                         fwrite($fp, $part->contents());
                         $part->delete();
                     }
                     fclose($fp);
                     $chunkTmpFolder->delete();
                 } else {
                     echo "SUCCESS\n";
                     return;
                 }
             } else {
                 $files = \GO\Base\Fs\File::moveUploadedFiles($uploadedFile, $tmpFolder);
                 if (!$files) {
                     throw new \Exception("No file received");
                 }
                 $file = $files[0];
             }
             $subdir = false;
             if (!empty($params['relpathinfo' . $count]) && !isset($params['jupart']) || !empty($params['relpathinfo' . $count]) && isset($params['jupart']) && !empty($params['jufinal'])) {
                 $fullpath = \GO::config()->tmpdir . 'juploadqueue' . '/' . str_replace('\\', '/', $params['relpathinfo' . $count]);
                 $dir = new \GO\Base\Fs\Folder($fullpath);
                 $dir->create();
                 $subdir = true;
                 $file->move($dir);
             }
             $count++;
             if ($subdir) {
                 $parent = $this->_findHighestParent($dir);
                 \GO::debug($parent);
                 if (!in_array($parent->path(), \GO::session()->values['files']['uploadqueue'])) {
                     \GO::session()->values['files']['uploadqueue'][] = $parent->path();
                 }
             } else {
                 \GO::session()->values['files']['uploadqueue'][] = $file->path();
             }
         }
     } catch (\Exception $e) {
         echo 'WARNING: ' . $e->getMessage() . "\n";
     }
     echo "SUCCESS\n";
 }