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

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

View File

@ -77,13 +77,45 @@ function wall_upload_post(&$a) {
$filetype = $_FILES['userfile']['type'];
}
elseif(x($_FILES,'media')) {
if (is_array($_FILES['media']['tmp_name']))
$src = $_FILES['media']['tmp_name'][0];
else
$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');
if(($maximagesize) && ($filesize > $maximagesize)) {
@ -120,8 +152,10 @@ function wall_upload_post(&$a) {
$max_length = get_config('system','max_image_length');
if(! $max_length)
$max_length = MAX_IMAGE_LENGTH;
if($max_length > 0)
if($max_length > 0) {
$ph->scaleImage($max_length);
logger("File upload: Scaling picture to new size ".$max_length, LOGGER_DEBUG);
}
$width = $ph->getWidth();
$height = $ph->getHeight();
@ -149,7 +183,7 @@ function wall_upload_post(&$a) {
if($width > 320 || $height > 320) {
$ph->scaleImage(320);
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
if($r)
if($r AND ($smallest == 0))
$smallest = 2;
}