Issue 964 "Image upload from Twidere" is solved now

This commit is contained in:
Michael Vogel 2014-09-06 15:47:45 +02:00
parent e21bcb82d2
commit f8845b6014
2 changed files with 53 additions and 19 deletions

View file

@ -120,16 +120,16 @@ function photo_init(&$a) {
$public = ($r[0]['allow_cid'] == '') AND ($r[0]['allow_gid'] == '') AND ($r[0]['deny_cid'] == '') AND ($r[0]['deny_gid'] == ''); $public = ($r[0]['allow_cid'] == '') AND ($r[0]['allow_gid'] == '') AND ($r[0]['deny_cid'] == '') AND ($r[0]['deny_gid'] == '');
if(count($r)) { if(count($r)) {
$resolution = $r[0]['scale']; $resolution = $r[0]['scale'];
$data = $r[0]['data']; $data = $r[0]['data'];
$mimetype = $r[0]['type']; $mimetype = $r[0]['type'];
} } else {
else { // The picure exists. We already checked with the first query.
// The picure exists. We already checked with the first query. // obviously, this is not an authorized viev!
// obviously, this is not an authorized viev! $data = file_get_contents('images/nosign.jpg');
$data = file_get_contents('images/nosign.jpg'); $mimetype = 'image/jpeg';
$mimetype = 'image/jpeg'; $prvcachecontrol = true;
$prvcachecontrol = true; $public = false;
} }
} }
} }

View file

@ -77,13 +77,45 @@ function wall_upload_post(&$a) {
$filetype = $_FILES['userfile']['type']; $filetype = $_FILES['userfile']['type'];
} }
elseif(x($_FILES,'media')) { elseif(x($_FILES,'media')) {
$src = $_FILES['media']['tmp_name']; if (is_array($_FILES['media']['tmp_name']))
$filename = basename($_FILES['media']['name']); $src = $_FILES['media']['tmp_name'][0];
$filesize = intval($_FILES['media']['size']); else
$filetype = $_FILES['media']['type']; $src = $_FILES['media']['tmp_name'];
if (is_array($_FILES['media']['name']))
$filename = basename($_FILES['media']['name'][0]);
else
$filename = basename($_FILES['media']['name']);
if (is_array($_FILES['media']['size']))
$filesize = intval($_FILES['media']['size'][0]);
else
$filesize = intval($_FILES['media']['size']);
if (is_array($_FILES['media']['type']))
$filetype = $_FILES['media']['type'][0];
else
$filetype = $_FILES['media']['type'];
} }
if ($filetype=="") $filetype=guess_image_type($filename); // This is a special treatment for picture upload from Twidere
if (($filename == "octet-stream") AND ($filetype != "")) {
$filename = $filetype;
$filetype = "";
}
if ($filetype=="")
$filetype=guess_image_type($filename);
// If there is a temp name, then do a manual check
// This is more reliable than the provided value
$imagedata = getimagesize($src);
if ($imagedata)
$filetype = $imagedata['mime'];
logger("File upload src: ".$src." - filename: ".$filename.
" - size: ".$filesize." - type: ".$filetype, LOGGER_DEBUG);
$maximagesize = get_config('system','maximagesize'); $maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) { if(($maximagesize) && ($filesize > $maximagesize)) {
@ -120,14 +152,16 @@ function wall_upload_post(&$a) {
$max_length = get_config('system','max_image_length'); $max_length = get_config('system','max_image_length');
if(! $max_length) if(! $max_length)
$max_length = MAX_IMAGE_LENGTH; $max_length = MAX_IMAGE_LENGTH;
if($max_length > 0) if($max_length > 0) {
$ph->scaleImage($max_length); $ph->scaleImage($max_length);
logger("File upload: Scaling picture to new size ".$max_length, LOGGER_DEBUG);
}
$width = $ph->getWidth(); $width = $ph->getWidth();
$height = $ph->getHeight(); $height = $ph->getHeight();
$hash = photo_new_resource(); $hash = photo_new_resource();
$smallest = 0; $smallest = 0;
$defperm = '<' . $default_cid . '>'; $defperm = '<' . $default_cid . '>';
@ -142,14 +176,14 @@ function wall_upload_post(&$a) {
if($width > 640 || $height > 640) { if($width > 640 || $height > 640) {
$ph->scaleImage(640); $ph->scaleImage(640);
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm); $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm);
if($r) if($r)
$smallest = 1; $smallest = 1;
} }
if($width > 320 || $height > 320) { if($width > 320 || $height > 320) {
$ph->scaleImage(320); $ph->scaleImage(320);
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm); $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
if($r) if($r AND ($smallest == 0))
$smallest = 2; $smallest = 2;
} }
@ -168,7 +202,7 @@ function wall_upload_post(&$a) {
} }
} }
else { else {
$m = '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]"; $m = '[url='.$a->get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash.'][img]'.$a->get_baseurl()."/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]";
return($m); return($m);
} }
/* mod Waitman Gobble NO WARRANTY */ /* mod Waitman Gobble NO WARRANTY */