X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FFile.php;h=da029e39b69b0641262faca5895971791ca1e593;hb=693fecc44a70e25d5ef0ca784a462aadb487ef1e;hp=407fd32114000c258fa49bd5b50288607048160c;hpb=f9a4728fcc5d93a019bc72f44c836fa51c2e8ea7;p=quix0rs-gnu-social.git diff --git a/classes/File.php b/classes/File.php index 407fd32114..da029e39b6 100644 --- a/classes/File.php +++ b/classes/File.php @@ -29,7 +29,6 @@ require_once INSTALLDIR.'/classes/File_to_post.php'; /** * Table Definition for file */ - class File extends Memcached_DataObject { ###START_AUTOCODE @@ -262,22 +261,41 @@ class File extends Memcached_DataObject // TRANS: Client exception thrown if a file upload does not have a valid name. throw new ClientException(_("Invalid filename.")); } - if(common_config('site','private')) { + + if (common_config('site','private')) { return common_local_url('getfile', array('filename' => $filename)); - } else { - $path = common_config('attachments', 'path'); + } - if ($path[strlen($path)-1] != '/') { - $path .= '/'; - } + if (StatusNet::isHTTPS()) { - if ($path[0] != '/') { - $path = '/'.$path; + $sslserver = common_config('attachments', 'sslserver'); + + if (empty($sslserver)) { + // XXX: this assumes that background dir == site dir + /file/ + // not true if there's another server + if (is_string(common_config('site', 'sslserver')) && + mb_strlen(common_config('site', 'sslserver')) > 0) { + $server = common_config('site', 'sslserver'); + } else if (common_config('site', 'server')) { + $server = common_config('site', 'server'); + } + $path = common_config('site', 'path') . '/file/'; + } else { + $server = $sslserver; + $path = common_config('attachments', 'sslpath'); + if (empty($path)) { + $path = common_config('attachments', 'path'); + } } + $protocol = 'https'; + + } else { + + $path = common_config('attachments', 'path'); $server = common_config('attachments', 'server'); if (empty($server)) { @@ -286,19 +304,18 @@ class File extends Memcached_DataObject $ssl = common_config('attachments', 'ssl'); - if (is_null($ssl)) { // null -> guess - if (common_config('site', 'ssl') == 'always' && - !common_config('attachments', 'server')) { - $ssl = true; - } else { - $ssl = false; - } - } - $protocol = ($ssl) ? 'https' : 'http'; + } - return $protocol.'://'.$server.$path.$filename; + if ($path[strlen($path)-1] != '/') { + $path .= '/'; } + + if ($path[0] != '/') { + $path = '/'.$path; + } + + return $protocol.'://'.$server.$path.$filename; } function getEnclosure(){