]> git.mxchange.org Git - friendica.git/blobdiff - mod/wall_upload.php
ajaxify the wall poster
[friendica.git] / mod / wall_upload.php
index 769e5dcbcaa51e37b7e87cf61bbef449e3f3bb7a..d74eae3023aeec02e7cc22ffeb60cd88c8d1b52c 100644 (file)
@@ -1,16 +1,98 @@
 <?php
 
+require_once('Photo.php');
 
 function wall_upload_post(&$a) {
 
+        if(! local_user()) {
+                notice ( "Permission denied." . EOL );
+                return;
+        }
 
- $src      = $_FILES['userfile']['tmp_name'];
+       $src      = $_FILES['userfile']['tmp_name'];
+       $filename = basename($_FILES['userfile']['name']);
+       $filesize = intval($_FILES['userfile']['size']);
 
+       $imagedata = @file_get_contents($src);
+       $ph = new Photo($imagedata);
 
-unlink($src);
+       if(! ($image = $ph->getImage())) {
+               notice("Unable to process image." . EOL);
+               @unlink($src);
+               return;
+       }
 
+       @unlink($src);
 
-       echo "<img src=\"".$a->get_baseurl(). "/images/default-profile.jpg\" alt=\"default\" />";
+       $width = $ph->getWidth();
+       $height = $ph->getHeight();
+
+       $hash = hash('md5',uniqid(mt_rand(),true));
+       
+       $str_image = $ph->imageString();
+       $smallest = 0;
+
+       $r = q("INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`, 
+               `height`, `width`, `data`, `scale` )
+               VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', 0 )",
+               intval($_SESSION['uid']),
+               dbesc($hash),
+               datetime_convert(),
+               datetime_convert(),
+               dbesc(basename($filename)),
+               intval($height),
+               intval($width),
+               dbesc($str_image));
+       if($r)
+               notice("Image uploaded successfully." . EOL);
+       else
+               notice("Image upload failed." . EOL);
+
+       if($width > 640 || $height > 640) {
+               $ph->scaleImage(640);
+
+               $r = q("INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`, 
+                       `height`, `width`, `data`, `scale` )
+                       VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', 1 )",
+                       intval($_SESSION['uid']),
+                       dbesc($hash),
+                       datetime_convert(),
+                       datetime_convert(),
+                       dbesc(basename($filename)),
+                       intval($ph->getHeight()),
+                       intval($ph->getWidth()),
+                       dbesc($ph->imageString())
+               );
+               if($r === false)
+                       notice("Image size reduction (640) failed." . EOL );
+               else
+                       $smallest = 1;
+       }
+
+       if($width > 320 || $height > 320) {
+               $ph->scaleImage(320);
+
+               $r = q("INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`, 
+                       `height`, `width`, `data`, `scale` )
+                       VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', 2 )",
+                       intval($_SESSION['uid']),
+                       dbesc($hash),
+                       datetime_convert(),
+                       datetime_convert(),
+                       dbesc(basename($filename)),
+                       intval($ph->getHeight()),
+                       intval($ph->getWidth()),
+                       dbesc($ph->imageString())
+               );
+               if($r === false)
+                       notice("Image size reduction (320) failed." . EOL );
+               else
+                       $smallest = 2;
+       }
+
+       $basename = basename($filename);
+
+       echo "<img src=\"".$a->get_baseurl(). "/photo/{$hash}-{$smallest}.jpg\" alt=\"$basename\" />";
        killme();
 
 }
\ No newline at end of file