DataObjects/Images.php
[Pman.Core] / DataObjects / Images.php
index 7668d6e..fa610d6 100644 (file)
@@ -690,82 +690,54 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         $ext = $y->toExt(trim((string) $this->mimetype ));
         
         $this->filename = empty($this->filename) ? 
-            ('gen-' . date('Y-m-d H:i:s') . '.' . $ext) : ($this->filename .'.'. $ext); 
+            ('image-upload-' . date('Y-m-d H:i:s') . '.' . $ext) : ($this->filename .'.'. $ext); 
         
-        
-        
-        if (!$this->createFrom($_FILES['imageUpload']['tmp_name'])) {
+        if (!$this->createFromData($data)) {
             return false;
         }
+        
         return true;
          
     }
     
-    function createFromData($file, $filename=false)
-    {
-        // copy the file into the storage area..
-        if (!file_exists($file) || !filesize($file)) {
-            return false;
-        }
-        
-        $filename = empty($filename) ? $file : $filename;
-        
-        if (empty($this->mimetype)) {
-            require_once 'File/MimeType.php';
-            $y = new File_MimeType();
-            $this->mimetype = $y->fromFilename($filename);
-        }
+    function createFromData($data)
+    {   
         
         $this->mimetype= strtolower($this->mimetype);
         
         if (array_shift(explode('/', $this->mimetype)) == 'image') { 
         
-            $imgs = @getimagesize($file);
+            $imgs = @getimagesize($data);
             
-            if (empty($imgs) || empty($imgs[0]) || empty($imgs[1])) {
-                // it's a file!!!!
-            } else {
+            if (!empty($imgs) && !empty($imgs[0]) && !empty($imgs[1])) {
                 list($this->width , $this->height)  = $imgs;
             }
         }
         
-        $this->filesize = filesize($file);
         $this->created = date('Y-m-d H:i:s');
-         
-        
-        if (empty($this->filename)) {
-            $this->filename = basename($filename);
-        }
         
-        //DB_DataObject::debugLevel(1);
         if (!$this->id) {
             $this->insert();
         } else {
             $this->update();
         }
         
-        
-        
         $f = $this->getStoreName();
         $dest = dirname($f);
         if (!file_exists($dest)) {
-            // currently this is 0775 due to problems using shared hosing (FTP)
-            // it makes all the files unaccessable..
-            // you can normally solve this by giving the storedirectory better perms
-            // if needed on a dedicated server..
             $oldumask = umask(0);
             mkdir($dest, 0775, true);
             umask($oldumask);  
         }
         
-        copy($file,$f);
+        file_put_contents($f, file_get_contents("data://" . $data));
         
-        // fill in details..
+        $o = clone($this);
         
-        /* thumbnails */
+        $this->filesize = filesize($f);
+        
+        $this->update($o);
         
-     
-       // $this->createThumbnail(0,50);
         return true;
         
     }