X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=blobdiff_plain;f=upload.php;h=b21af6ffc1d0c9daee027cb1e9c92e9d8f292c6f;hp=e9ff5db4f0c3a255ad1da8a81fc2036ef4ef83e6;hb=HEAD;hpb=196deb2416748b09200f620247a344563dff4c38 diff --git a/upload.php b/upload.php index e9ff5db..b21af6f 100644 --- a/upload.php +++ b/upload.php @@ -1,19 +1,9 @@ . +# This program is in the public domain within the United States. Additionally, +# we waive copyright and related rights in the work worldwide through the CC0 +# 1.0 Universal public domain dedication, which can be found at +# http://creativecommons.org/publicdomain/zero/1.0/ # This file contains functions to accept files being uplodad with the tag # # mime time used to generate extension ONLY IF it doesn't have one already. -function generate_filename($path, $mime = 'text/plain') { +function generate_filename($path, $mime = 'text/plain', $default_ext = '.txt') { # lower case $filename = strtolower($path); @@ -113,30 +136,21 @@ function generate_filename($path, $mime = 'text/plain') { # replace symbols with underscores $filename = preg_replace('|[^a-z0-9_.]|', '_', $filename); - # remove dots from the beginning (no invisible files) - $filename = preg_replace('|^\.*|', '', $filename); - + # limit length if(strlen($filename > 80)) { $filename = substr($filename, -80); } - # fix extension - $last_dot = strrpos($filename, '.'); - if($last_dot === false) { - #no extension - if(isset($GLOBALS['mime_to_ext'][$mime])) { - $filename .= '.' . $GLOBALS['mime_to_ext'][$mime]; - } else { - $filename .= '.bin'; - } - } else { - $basename = substr($filename, 0, $last_dot); - $ext = substr($filename, $last_dot + 1); - if(isset($GLOBALS['ext_to_ext'][$ext])) { - $ext .= $GLOBALS['ext_to_ext'][$ext]; - } - $filename = $basename . '.' . $ext; + # remove dots from the beginning (no invisible files) + $filename = preg_replace('|^\.*|', '', $filename); + + # make sure there's something before the extension + if ($filename == '') { + return '_'; } + + $filename = path_fix_ext($filename, $mime, $default_ext); + return $filename; } @@ -224,7 +238,7 @@ function gif_to_png($filename, $new_filename = 'just change extension') { $new_filename .= '.png'; } - imagemagick_convert($filename, $new_filename, "-colorspace sRGB", 'GIF to PNG conversion'); + imagemagick_convert($filename.'[0]', $new_filename, "-colorspace sRGB", 'GIF to PNG conversion'); unlink($filename); return $new_filename; @@ -396,7 +410,7 @@ function convert_uploaded_image($key, $path, $image_width = 0, $image_height = 0 if($image_width > 0 && $image_height > 0) { $convert_params .= " -geometry ${image_width}x$image_height"; } - imagemagick_convert($tmp_filename, $filename, $convert_params); + imagemagick_convert($tmp_filename.'[0]', $filename, $convert_params); unlink($tmp_filename); list($w, $h) = image_w_h_or_die($filename); $ret = "$filename $w $h";