aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2018-05-15 16:51:04 -0700
committerzotlabs <mike@macgirvin.com>2018-05-15 16:51:04 -0700
commitaac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f (patch)
treed84109a6b10d470235a279195f5218ae160ebedc
parent16930c1c54ef4bb3077bb868a366c0165eb33fae (diff)
downloadvolse-hubzilla-aac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f.tar.gz
volse-hubzilla-aac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f.tar.bz2
volse-hubzilla-aac5fd96cc9ea03a329234f6b2bd8b12a0f4ae5f.zip
provide function to fetch photo contents from url
-rw-r--r--Zotlabs/Module/Linkinfo.php6
-rw-r--r--Zotlabs/Module/Photo.php11
-rw-r--r--include/photos.php20
3 files changed, 27 insertions, 10 deletions
diff --git a/Zotlabs/Module/Linkinfo.php b/Zotlabs/Module/Linkinfo.php
index 3f58f3e01..f0d62b5e0 100644
--- a/Zotlabs/Module/Linkinfo.php
+++ b/Zotlabs/Module/Linkinfo.php
@@ -55,10 +55,10 @@ class Linkinfo extends \Zotlabs\Web\Controller {
$h = explode("\n",$result['header']);
foreach ($h as $l) {
list($k,$v) = array_map("trim", explode(":", trim($l), 2));
- $hdrs[$k] = $v;
+ $hdrs[strtolower($k)] = $v;
}
- if (array_key_exists('Content-Type', $hdrs))
- $type = $hdrs['Content-Type'];
+ if (array_key_exists('content-type', $hdrs))
+ $type = $hdrs['content-type'];
if($type) {
$zrl = is_matrix_url($url);
if(stripos($type,'image/') !== false) {
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index ccc59ed09..29ad06e80 100644
--- a/Zotlabs/Module/Photo.php
+++ b/Zotlabs/Module/Photo.php
@@ -83,7 +83,7 @@ class Photo extends \Zotlabs\Web\Controller {
$data = file_get_contents($data);
}
if(! $data) {
- $data = file_get_contents($default);
+ $data = fetch_image_from_url($default,$mimetype);
}
if(! $mimetype) {
$mimetype = 'image/png';
@@ -183,16 +183,13 @@ class Photo extends \Zotlabs\Web\Controller {
switch($resolution) {
case 4:
- $data = file_get_contents(z_root() . '/' . get_default_profile_photo());
- $mimetype = 'image/png';
+ $data = fetch_image_from_url(z_root() . '/' . get_default_profile_photo(),$mimetype);
break;
case 5:
- $data = file_get_contents(z_root() . '/' . get_default_profile_photo(80));
- $mimetype = 'image/png';
+ $data = fetch_image_from_url(z_root() . '/' . get_default_profile_photo(80),$mimetype);
break;
case 6:
- $data = file_get_contents(z_root() . '/' . get_default_profile_photo(48));
- $mimetype = 'image/png';
+ $data = fetch_image_from_url(z_root() . '/' . get_default_profile_photo(48),$mimetype);
break;
default:
killme();
diff --git a/include/photos.php b/include/photos.php
index 2d2c9cc13..9fb872700 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -1011,3 +1011,23 @@ function profile_photo_set_profile_perms($uid, $profileid = 0) {
}
}
}
+
+function fetch_image_from_url($url,&$mimetype) {
+
+ $redirects = 0;
+ $x = z_fetch_url($url,true,$redirects,[ 'novalidate' => true ]);
+ if($x['success']) {
+ $hdrs = [];
+ $h = explode("\n",$x['header']);
+ foreach ($h as $l) {
+ list($k,$v) = array_map("trim", explode(":", trim($l), 2));
+ $hdrs[strtolower($k)] = $v;
+ }
+ if (array_key_exists('content-type', $hdrs))
+ $mimetype = $hdrs['content-type'];
+
+ return $x['body'];
+ }
+
+ return EMPTY_STR;
+} \ No newline at end of file