]> git.mxchange.org Git - friendica-addons.git/blobdiff - jappixmini/jappix/php/avatar-upload.php
jappixmini: include jappix source
[friendica-addons.git] / jappixmini / jappix / php / avatar-upload.php
diff --git a/jappixmini/jappix/php/avatar-upload.php b/jappixmini/jappix/php/avatar-upload.php
new file mode 100644 (file)
index 0000000..73350e1
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+
+/*
+
+Jappix - An open social platform
+This is the avatar upload PHP script for Jappix
+
+-------------------------------------------------
+
+License: AGPL
+Author: Vanaryon
+Last revision: 27/05/11
+
+*/
+
+// PHP base
+define('JAPPIX_BASE', '..');
+
+// Get the needed files
+require_once('./functions.php');
+require_once('./read-main.php');
+require_once('./read-hosts.php');
+
+// Optimize the page rendering
+hideErrors();
+compressThis();
+
+// Not allowed for a special node
+if(isStatic() || isUpload())
+       exit;
+
+// Set a special XML header
+header('Content-Type: text/xml; charset=utf-8');
+
+// No file uploaded?
+if((!isset($_FILES['file']) || empty($_FILES['file'])) || (!isset($_POST['id']) || empty($_POST['id'])))
+       exit(
+'<jappix xmlns=\'jappix:avatar:post\' id=\'0\'>
+       <error>bad-request</error>
+</jappix>'
+       );
+
+// Get the POST vars
+$id = $_POST['id'];
+$tmp_filename = $_FILES['file']['tmp_name'];
+$old_filename = $_FILES['file']['name'];
+
+// Get the file extension
+$ext = getFileExt($old_filename);
+
+// Hash it!
+$filename = md5($old_filename.time()).$ext;
+
+// Define some vars
+$path = JAPPIX_BASE.'/store/avatars/'.$filename;
+
+// Define MIME type
+if($ext == 'jpg')
+       $ext = 'jpeg';
+
+$mime = 'image/'.$ext;
+
+// Unsupported file extension?
+if(!preg_match('/^(jpeg|png|gif)$/i', $ext))
+       exit(
+'<jappix xmlns=\'jappix:avatar:post\' id=\''.$id.'\'>
+       <error>forbidden-type</error>
+</jappix>'
+       );
+
+// File upload error?
+if(!is_uploaded_file($tmp_filename) || !move_uploaded_file($tmp_filename, $path))
+       exit(
+'<jappix xmlns=\'jappix:file:post\' id=\''.$id.'\'>
+       <error>move-error</error>
+</jappix>'
+       );
+
+// Resize the image?
+if(!function_exists('gd_info') || resizeImage($path, $ext, 96, 96)) {
+       try {
+               // Encode the file
+               $binval = base64_encode(file_get_contents($path));
+               
+               // Remove the file
+               unlink($path);
+               
+               exit(
+'<jappix xmlns=\'jappix:file:post\' id=\''.$id.'\'>
+       <type>'.$mime.'</type>
+       <binval>'.$binval.'</binval>
+</jappix>'
+               );
+       }
+       
+       catch(Exception $e) {
+               // Remove the file
+               unlink($path);
+               
+               exit(
+'<jappix xmlns=\'jappix:file:post\' id=\''.$id.'\'>
+       <error>server-error</error>
+</jappix>'
+               );
+       }
+}
+
+// Remove the file
+unlink($path);
+
+// Something went wrong!
+exit(
+'<jappix xmlns=\'jappix:file:post\' id=\''.$id.'\'>
+       <error>service-unavailable</error>
+</jappix>'
+);
+
+?>