raster pushed a commit to branch master. http://git.enlightenment.org/website/www.git/commit/?id=f934133a344d85125d321bde485012fd02d03da6
commit f934133a344d85125d321bde485012fd02d03da6 Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Wed Oct 28 14:53:22 2015 +0900 www - add an edje file share infra like screenshots --- public_html/edjshare.php | 87 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/public_html/edjshare.php b/public_html/edjshare.php new file mode 100644 index 0000000..0c59aa3 --- /dev/null +++ b/public_html/edjshare.php @@ -0,0 +1,87 @@ +<?php + +$eet = "/usr/bin/eet"; + +function get_ip() +{ + if (getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); + else $ip = "UNKNOWN"; + return $ip; +} + +ob_start(); +############ limit - 20 mb. +$data = file_get_contents('php://input', NULL, NULL, 0, 50 * 1024 * 1024); +############ magic jpeg signature +$edj_match = "\x1e\xe7\x0f\x42"; +$edj_magic = substr($data, 0, 4); + +############ base on signaure, add file extension +if ($edj_match != $edj_magic) { + header("HTTP/1.1 400 Bad Request"); + echo "Invalid File Format"; + ob_end_flush(); + die(); +} + +############ get a unique name +$dest = uniqid("e-", true); +$temp = $_SERVER["DOCUMENT_ROOT"] . "/edjshare/tmp/" . $dest . ".edj"; +$thumb = $_SERVER["DOCUMENT_ROOT"] . "/edjshare/tmp/th-" . $dest . ".png"; +$temp_ip = $_SERVER["DOCUMENT_ROOT"] . "/edjshare/tmp/ip-" . $dest; +$meta = $_SERVER["DOCUMENT_ROOT"] . "/edjshare/tmp/meta-" . $dest . ".meta"; + +mkdir($_SERVER["DOCUMENT_ROOT"] . "/edjshare"); +mkdir($_SERVER["DOCUMENT_ROOT"] . "/edjshare/tmp"); + +############ store the file +$fh = fopen($temp, 'wb'); +fwrite($fh, $data); +fclose($fh); + +############ extract thumb from edj and remove it +shell_exec($eet . " -x " . $temp . " edjshare/thumb " . $thumb); +shell_exec($eet . " -r " . $temp . " edjshare/thumb"); +shell_exec($eet . " -x " . $temp . " edjshare/meta " . $meta); +shell_exec($eet . " -r " . $temp . " edjshare/meta "); + +$meta_data = file_get_contents($meta); +$meta_data = preg_replace('/[^A-Za-z0-9\s]/', '', $meta_data); +$meta_data = preg_replace('!\s+!', ' ', $meta_data); +$meta_data = trim($meta_data, " "); + +############ store ip of uploader +$fh = fopen($temp_ip, 'w'); +fwrite($fh, md5($dest . get_ip())); +fclose($fh); +############ prepare url to get file from +$loc = "http://www.enlightenment.org/edjshare/" . $dest; + +if (!file_exists($thumb) || !file_exists($meta) || + !rename($thumb, $_SERVER["DOCUMENT_ROOT"] . "/edjshare/th-" . $dest . ".png")) +{ + unlink($temp); + unlink($thumb); + unlink($temp_ip); + unlink($meta); + header("HTTP/1.1 400 Bad Request"); + if (!file_exists($thumb)) echo "No Thumb"; + else if (!file_exists($meta)) echo "No meta"; + else echo "Invalid File Format"; + ob_end_flush(); + die(); +} + +rename($temp, $_SERVER["DOCUMENT_ROOT"] . "/edjshare/" . $dest . ".edj"); +rename($temp_ip, $_SERVER["DOCUMENT_ROOT"] . "/edjshare/ip-" . $dest); +file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/edjshare/index.txt", + $dest . " " . $meta_data . "\n", FILE_APPEND | LOCK_EX); +unlink($meta); + +############ respond! +header("HTTP/1.1 200 OK"); +header("Content-Type: text/plain"); +header("X-Enlightenment-Service: Pants On"); +print $loc; +ob_end_flush(); +?> --