X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fwall_upload.php;h=b5725311d159d6677c134f3405d665ee415c2995;hb=8c245a5d2f4e6882211ac17561f86537a7089c73;hp=769e5dcbcaa51e37b7e87cf61bbef449e3f3bb7a;hpb=88bfe21bead769c3ba81e181b79f9d6426ace351;p=friendica.git diff --git a/mod/wall_upload.php b/mod/wall_upload.php index 769e5dcbca..b5725311d1 100644 --- a/mod/wall_upload.php +++ b/mod/wall_upload.php @@ -1,16 +1,105 @@ argc > 1) { + $nick = $a->argv[1]; + $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", + dbesc($nick) + ); + if(! count($r)) + return; - $src = $_FILES['userfile']['tmp_name']; + } + else + return; + $can_post = false; + $visitor = 0; -unlink($src); + $page_owner_uid = $r[0]['uid']; + $page_owner_nick = $r[0]['nickname']; + $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); + if((local_user()) && (local_user() == $page_owner_uid)) + $can_post = true; + else { + if($community_page && remote_user()) { + $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", + intval(remote_user()), + intval($page_owner_uid) + ); + if(count($r)) { + $can_post = true; + $visitor = remote_user(); + } + } + } - echo "get_baseurl(). "/images/default-profile.jpg\" alt=\"default\" />"; - killme(); + if(! $can_post) { + notice( t('Permission denied.') . EOL ); + killme(); + } + + if(! x($_FILES,'userfile')) + killme(); + + $src = $_FILES['userfile']['tmp_name']; + $filename = basename($_FILES['userfile']['name']); + $filesize = intval($_FILES['userfile']['size']); + + $maximagesize = get_config('system','maximagesize'); + + if(($maximagesize) && ($filesize > $maximagesize)) { + notice( t('Image exceeds size limit of ') . $maximagesize . EOL); + @unlink($src); + return; + } + + $imagedata = @file_get_contents($src); + $ph = new Photo($imagedata); + + if(! $ph->is_valid()) { + echo ( t('Unable to process image.') . EOL); + @unlink($src); + killme(); + } + + @unlink($src); -} \ No newline at end of file + $width = $ph->getWidth(); + $height = $ph->getHeight(); + + $hash = photo_new_resource(); + + $smallest = 0; + + $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, '<0>'); + + if(! $r) { + echo ( t('Image upload failed.') . EOL); + killme(); + } + + if($width > 640 || $height > 640) { + $ph->scaleImage(640); + $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, '<0>'); + if($r) + $smallest = 1; + } + + if($width > 320 || $height > 320) { + $ph->scaleImage(320); + $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, '<0>' ); + if($r) + $smallest = 2; + } + + $basename = basename($filename); + echo '

\"$basename\"

"; + + killme(); + // NOTREACHED +}