|
@@ -36,6 +36,56 @@ function ARE_STRINGS_EQUAL($str1, $str2, $case_sensitive = false){
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// @BRIEF Generates a secure, random string.
|
|
|
|
|
+// @RETURNS Returns the generated string.
|
|
|
|
|
+// @CREDITS https://stackoverflow.com/questions/4356289/php-random-string-generator/31107425#31107425
|
|
|
|
|
+function GET_RANDOM_STRING($length = RANDOM_STRING_DEFAULT_LENGTH, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'){
|
|
|
|
|
+
|
|
|
|
|
+ $pieces = [];
|
|
|
|
|
+ $max = mb_strlen($keyspace, '8bit') - 1;
|
|
|
|
|
+ for ($i = 0; $i < $length; ++$i) {
|
|
|
|
|
+ $pieces []= $keyspace[random_int(0, $max)];
|
|
|
|
|
+ }
|
|
|
|
|
+ return implode('', $pieces);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// @BRIEF Generates a random filename.
|
|
|
|
|
+// @CREDITS php-image-serve.
|
|
|
|
|
+function GET_RANDOM_FILENAME($username, $type){
|
|
|
|
|
+
|
|
|
|
|
+ $an = '0123456789';
|
|
|
|
|
+ $str = '';
|
|
|
|
|
+ for ($i = 0; $i < 5; $i++){
|
|
|
|
|
+
|
|
|
|
|
+ $str .= substr($an, rand(0, strlen($an) - 1), 1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!file_exists(GET_USER_CONTENT_DIR_PATH($username) . $str . "." . $type)){
|
|
|
|
|
+
|
|
|
|
|
+ return $str;
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+
|
|
|
|
|
+ return GET_RANDOM_FILENAME($username, $type);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function SAVE_IMAGE($username, $mime_type, $tmp_name){
|
|
|
|
|
+
|
|
|
|
|
+ $save_dir = GET_USER_CONTENT_DIR_PATH($username);
|
|
|
|
|
+ $mime_type_arr = explode('/', $mime_type);
|
|
|
|
|
+ $type = $mime_type_arr[1];
|
|
|
|
|
+
|
|
|
|
|
+ $name = GET_RANDOM_FILENAME($username, $type);
|
|
|
|
|
+ $final_filename = $name . "." . $type;
|
|
|
|
|
+
|
|
|
|
|
+ if (move_uploaded_file($tmp_name, $save_dir . "/" . $final_filename)){
|
|
|
|
|
+ $img_url = HTTP_PROTOCOL . "://" . FQDN . PUBLIC_USER_CONTENT_DIR . "/" . $username . "/" . $final_filename;
|
|
|
|
|
+ echo $img_url;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function GET_JSON_DATA_FROM_FILE($full_path_to_file){
|
|
function GET_JSON_DATA_FROM_FILE($full_path_to_file){
|
|
|
|
|
|
|
|
$filename = $full_path_to_file;
|
|
$filename = $full_path_to_file;
|
|
@@ -182,6 +232,8 @@ function CHECK_USER(&$err){
|
|
|
// Check image prelim data.
|
|
// Check image prelim data.
|
|
|
function CHECK_IMAGE_PRELIM_DATA(&$err){
|
|
function CHECK_IMAGE_PRELIM_DATA(&$err){
|
|
|
|
|
|
|
|
|
|
+ global $allowed_mime_types;
|
|
|
|
|
+
|
|
|
if (empty($_FILES)){
|
|
if (empty($_FILES)){
|
|
|
|
|
|
|
|
$err = "error_415_1";
|
|
$err = "error_415_1";
|
|
@@ -190,7 +242,7 @@ function CHECK_IMAGE_PRELIM_DATA(&$err){
|
|
|
|
|
|
|
|
if (filesize($_FILES['image']['tmp_name']) > 0){
|
|
if (filesize($_FILES['image']['tmp_name']) > 0){
|
|
|
|
|
|
|
|
- if (!in_array($_FILES['image']['type'], $allowed_mime_types)){
|
|
|
|
|
|
|
+ if (in_array($_FILES['image']['type'], $allowed_mime_types)){
|
|
|
|
|
|
|
|
$err = null;
|
|
$err = null;
|
|
|
return true;
|
|
return true;
|