function uploadPhoto() { $cur = common_current_user(); if (empty($cur)) { return; } try { $imagefile = ImageFile::fromUpload('photofile'); } catch (Exception $e) { $this->showForm($e->getMessage()); return; } if ($imagefile === null) { $this->showForm(_('No file uploaded.')); return; } $title = $this->trimmed('phototitle'); $photo_description = $this->trimmed('photo_description'); common_log(LOG_INFO, 'upload path : ' . $imagefile->filepath); $filename = $cur->nickname . '-' . common_timestamp() . sha1_file($imagefile->filepath) . image_type_to_extension($imagefile->type); move_uploaded_file($imagefile->filepath, INSTALLDIR . '/file/' . $filename); photo_make_thumbnail($filename); $uri = 'http://' . common_config('site', 'server') . '/file/' . $filename; $thumb_uri = 'http://' . common_config('site', 'server') . '/file/thumb.' . $filename; $profile_id = $cur->id; $album = GNUsocialPhotoAlbum::getKV('album_id', $this->trimmed('album')); if ($album->profile_id != $profile_id) { $this->showForm(_('Error: This is not your album!')); return; } GNUsocialPhoto::saveNew($profile_id, $album->album_id, $thumb_uri, $uri, 'web', false, $title, $photo_description); }
function onStartHandleFeedEntry($activity) { common_log(LOG_INFO, 'photo plugin: onEndAtomPubNewActivity'); $oprofile = Ostatus_profile::ensureActorProfile($activity); foreach ($activity->objects as $object) { if ($object->type == ActivityObject::PHOTO) { $uri = $object->largerImage; $thumb_uri = $object->thumbnail; $profile_id = $oprofile->profile_id; $source = 'unknown'; // TODO: put something better here. common_log(LOG_INFO, 'uri : ' . $uri); common_log(LOG_INFO, 'thumb_uri : ' . $thumb_uri); // It's possible this is validated elsewhere, but I'm not sure and // would rather be safe. $uri = filter_var($uri, FILTER_SANITIZE_URL); $thumb_uri = filter_var($thumb_uri, FILTER_SANITIZE_URL); $uri = filter_var($uri, FILTER_VALIDATE_URL); $thumb_uri = filter_var($thumb_uri, FILTER_VALIDATE_URL); if (empty($thumb_uri)) { // We need a thumbnail, so if we aren't given one, use the actual picture for now. $thumb_uri = $uri; } if (!empty($uri) && !empty($thumb_uri)) { GNUsocialPhoto::saveNew($profile_id, $thumb_uri, $uri, $source, false); } else { common_log(LOG_INFO, 'bad URI for photo'); } return false; } } return true; }