aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_upload.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/functions_upload.php')
-rw-r--r--phpBB/includes/functions_upload.php22
1 files changed, 20 insertions, 2 deletions
diff --git a/phpBB/includes/functions_upload.php b/phpBB/includes/functions_upload.php
index 56fb295d59..a3109c0ef4 100644
--- a/phpBB/includes/functions_upload.php
+++ b/phpBB/includes/functions_upload.php
@@ -62,7 +62,7 @@ class filespec
$this->mimetype = 'application/octetstream';
}
- $this->extension = array_pop(explode('.', strtolower($this->realname)));
+ $this->extension = strtolower($this->get_extension($this->realname));
// Try to get real filesize from temporary folder (not always working) ;)
$this->filesize = (@filesize($this->filename)) ? @filesize($this->filename) : $this->filesize;
@@ -145,6 +145,20 @@ class filespec
}
/**
+ * Get file extension
+ */
+ function get_extension($filename)
+ {
+ if (strpos($filename, '.') === false)
+ {
+ return '';
+ }
+
+ $filename = explode('.', $filename);
+ return array_pop($filename);
+ }
+
+ /**
* Move file to destination folder
*
* The phpbb_root_path variable will be applied to the destination path
@@ -508,7 +522,11 @@ class fileupload
$port = (!empty($url['port'])) ? (int) $url['port'] : 80;
$upload_ary['type'] = 'application/octet-stream';
- $upload_ary['name'] = basename($url['path']) . '.' . array_pop(explode('.', $url['path']));
+
+ $url['path'] = explode('.', $url['path']);
+ $ext = array_pop($url['path']);
+
+ $upload_ary['name'] = basename($url['path']) . (($ext) ? '.' . $ext : '');
$filename = $url['path'];
$filesize = 0;