diff options
author | Dries Buytaert <dries@buytaert.net> | 2005-11-29 20:17:10 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2005-11-29 20:17:10 +0000 |
commit | 2d0df351d704ba34d191831f7d4b8cb385555be2 (patch) | |
tree | b18d02dfa6d075ff540eeffc4ab38393e53a3da0 /includes/file.inc | |
parent | 236da7af059e6cf3aba6e8ec923e082b1f8fe143 (diff) | |
download | brdo-2d0df351d704ba34d191831f7d4b8cb385555be2.tar.gz brdo-2d0df351d704ba34d191831f7d4b8cb385555be2.tar.bz2 |
- Various fixes. Updated CHANGELOG.txt
Diffstat (limited to 'includes/file.inc')
-rw-r--r-- | includes/file.inc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/includes/file.inc b/includes/file.inc index 41f9a78f1..55f7825d5 100644 --- a/includes/file.inc +++ b/includes/file.inc @@ -144,8 +144,24 @@ function file_check_upload($source) { elseif ($_FILES["edit"]["name"][$source] && is_uploaded_file($_FILES["edit"]["tmp_name"][$source])) { $file = new StdClass(); $file->filename = trim(basename($_FILES["edit"]["name"][$source]), '.'); - $file->filemime = $_FILES["edit"]["type"][$source]; $file->filepath = $_FILES["edit"]["tmp_name"][$source]; + + if (function_exists('mime_content_type')) { + $file->filemime = mime_content_type($file->filepath); + if ($file->filemime != $_FILES["edit"]["type"][$source]) { + watchdog('file', t('For %file the system thinks its MIME type is %detected while the user has given %given for MIME type', array('%file' => theme('placeholder', $file->filepath), '%detected' => theme('placeholder', $file>-filemime), '%given' => theme('placeholder', $_FILES['edit']['type'][$source])))); + } + } + else { + $file->filemime = $_FILES["edit"]["type"][$source]; + } + if (((substr($file->filemime, 0, 5) == 'text/' || strpos($file->filemime, 'javascript')) && (substr($file->filepath, -4) != '.txt')) || preg_match('/\.(php|pl|py|cgi|asp)$/i', $file->filename)) { + $file->filemime = 'text/plain'; + rename($file->filepath, $file->filepath .'.txt'); + $file->filepath .= '.txt'; + $file->filename .= '.txt'; + } + $file->error = $_FILES["edit"]["error"][$source]; $file->filesize = $_FILES["edit"]["size"][$source]; $file->source = $source; |