====== PreserveFilenames Plugin ====== ---- plugin ---- description: Preserves the original name of the uploaded media file (letter cases, symbols, etc.) author : Kazutaka Miyasaka email : kazmiya@gmail.com type : action, renderer lastupdate : 2012-10-01 compatible : Lemming, Anteater, Rincewind, Angua, Adora Belle depends : conflicts : any_wysiwyg_editors similar : tags : file, media downloadurl: https://github.com/kazmiya/dokuwiki-plugin-preservefilenames/zipball/master bugtracker : https://github.com/kazmiya/dokuwiki-plugin-preservefilenames/issues sourcerepo : https://github.com/kazmiya/dokuwiki-plugin-preservefilenames ---- ===== Download and Installation ===== Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. If you are manually installing, you need to rename the extracted directory to "preservefilenames". ^ Download | https://github.com/kazmiya/dokuwiki-plugin-preservefilenames/zipball/master | **Changelog**: {{rss>https://github.com/kazmiya/dokuwiki-plugin-preservefilenames/commits/master.atom 5 date 7d}} ===== Overview ===== {{ http://img202.imageshack.us/img202/6781/preservefilenames.png?nolink}} By default, DokuWiki normalizes media file names by means of normalized method documented in [[:pagenames]]. For example, a media file whose name is "''[DW] My DokuWiki Stuff.zip''" is normalized into "''dw_my_dokuwiki_stuff.zip''" and this normalized name is used as a file name to store file entity in a file system on the DokuWiki server. However, in some cases you might want to use upper case letters, symbols or white spaces in a file name. By installing this plugin, you can use uploaded media file with its original name instead of normalized name. Letter cases, spaces, symbols and multibyte characters in a file name will all be preserved. ===== Features ===== ==== File name preservation ==== This plugin uses a meta file to store and retrieve an original name of an uploaded file. Storing Process: * Occurs when: * Uploading files via upload interface of DokuWiki * Process details: - An user uploads a file (ex. ''%%"[DW] My DokuWiki Stuff.zip"%%'') via upload interface of DokuWiki - DokuWiki normalizes the file name into ''%%"dw_my_dokuwiki_stuff.zip"%%'' - DokuWiki stores the file in ''%%"data/media/dw_my_dokuwiki_stuff.zip"%%'' - The plugin creates a meta file ''%%"data/media-meta/dw_my_dokuwiki_stuff.zip.filename"%%''((For DokuWiki Rincewind or earlier, the plugin uses ''%%data/meta/%%'' instead of ''%%data/media-meta/%%'' for storing meta files.)) - The plugin stores original file name in the meta file Retrieving Process: * Occurs when: * Filling label text of media links with no designated label text in wiki pages * Displaying a file list in media manager * Inserting selected media file syntax into wiki text using javascript in media manager * Downloading a media file to set its file name * Process details: - The plugin checks if there is a meta file for a media file - If the meta file exists, the plugin replaces a normalized file name with its original file name As the default behavior of DokuWiki, media links written in syntax like ''%%{{:[DW] My DokuWiki Stuff.zip}}%%'' are recognized as normalized media IDs like ''%%{{:dw_my_dokuwiki_stuff.zip}}%%'' by DokuWiki. And, this plugin stores uploaded media files using default file storing method of DokuWiki (e.g. stored as normalized file name). So if you don't like this plugin, you can safely uninstall this plugin without any side effects. ==== Better file name handling on downloading ==== This plugin resolves [[http://bugs.php.net/bug.php?id=37738|PHP Bug #37738]] and introduces [[http://greenbytes.de/tech/tc2231/|RFC 2231 style Content-Disposition header]] for compliant browsers to mainly make a correct handling for East Asian characters in file names. When you have a media file whose name is "''日本語.zip''" on your DokuWiki site and you are trying to download that file, you can download the file with the correct file name in almost all modern browsers, without seeing an url-encoded "''%E6%97%A5%E6%9C%AC%E8%AA%9E.zip''" or any garbled file names. For example, you can download snippet below as "''文書_1.txt''" instead of "''_1.txt''" or any garbled file names by installing this plugin. Sample text ===== Configuration ===== There are no configuration options for this plugin. ===== Notes ===== * The [[:config:refcheck]] feature probably does not work on a media file whose name contains special characters for DokuWiki (white spaces, parentheses, etc.). * When you want to preserve file names, you cannot use FTP or any other "direct" methods to upload files. Since this plugin uses meta data to store original file name, you are required to use normal file upload interface (including multi uploader) of DokuWiki to set meta data. * Even if original file names are different, you need to pay attention whether the names are normalized into the same media ID or not. For example, both ''[1].txt'' and ''(1).txt'' are normalized into the same ''1_.txt'' by DokuWiki. You cannot upload both files in same namespace. ===== Feedback ===== Any feedback is welcome. Please use the [[https://github.com/kazmiya/dokuwiki-plugin-preservefilenames/issues|Issue Tracker]] to send your feedback.