From 62a60e554235c66c88955d16134c874ad560bf72 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 17 Dec 2015 16:22:13 -0800 Subject: more work on media uploads via api --- include/api.php | 32 +++++++++++++++++++++++--------- include/attach.php | 4 ++++ 2 files changed, 27 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/api.php b/include/api.php index 5c72a2d0c..5053977c5 100644 --- a/include/api.php +++ b/include/api.php @@ -859,15 +859,29 @@ require_once('include/api_auth.php'); $_REQUEST['type'] = 'wall'; if(x($_FILES,'media')) { - $num_uploads = count($_FILES['media']['name']); - for($x = 0; $x < $num_uploads; $x ++) { - $_FILES['userfile'] = array(); - $_FILES['userfile']['name'] = $_FILES['media']['name'][$x]; - $_FILES['userfile']['type'] = $_FILES['media']['type'][$x]; - $_FILES['userfile']['tmp_name'] = $_FILES['media']['tmp_name'][$x]; - $_FILES['userfile']['error'] = $_FILES['media']['error'][$x]; - $_FILES['userfile']['size'] = $_FILES['media']['size'][$x]; - + if(is_array($_FILES['media']['name'])) { + $num_uploads = count($_FILES['media']['name']); + for($x = 0; $x < $num_uploads; $x ++) { + $_FILES['userfile'] = array(); + $_FILES['userfile']['name'] = $_FILES['media']['name'][$x]; + $_FILES['userfile']['type'] = $_FILES['media']['type'][$x]; + $_FILES['userfile']['tmp_name'] = $_FILES['media']['tmp_name'][$x]; + $_FILES['userfile']['error'] = $_FILES['media']['error'][$x]; + $_FILES['userfile']['size'] = $_FILES['media']['size'][$x]; + + // upload each image if we have any + $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo + require_once('mod/wall_attach.php'); + $a->data['api_info'] = $user_info; + $media = wall_attach_post($a); + + if(strlen($media)>0) + $_REQUEST['body'] .= "\n\n" . $media; + } + } + else { + // AndStatus doesn't present media as an array + $_FILES['userfile'] = $_FILES['media']; // upload each image if we have any $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo require_once('mod/wall_attach.php'); diff --git a/include/attach.php b/include/attach.php index 20e8b7444..8595d5d86 100644 --- a/include/attach.php +++ b/include/attach.php @@ -503,6 +503,10 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { } } + // AndStatus sends jpegs with a non-standard mimetype + if($type === 'image/jpg') + $type = 'image/jpeg'; + $existing_size = 0; if($options === 'replace') { -- cgit v1.2.3