--- /dev/null
+<?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>'
+);
+
+?>