diff options
-rw-r--r-- | IkiWiki/Plugin/attachment.pm | 5 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/bugs/attachment_upload_does_not_work_for_windows_clients.mdwn | 7 |
3 files changed, 13 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm index 9c774557f..ce688ca40 100644 --- a/IkiWiki/Plugin/attachment.pm +++ b/IkiWiki/Plugin/attachment.pm @@ -134,9 +134,12 @@ sub formbuilder (@) { } } + $filename=IkiWiki::basename($filename); + $filename=~s/.*\\+(.+)/$1/; # hello, windows + $filename=linkpage(IkiWiki::possibly_foolish_untaint( attachment_location($form->field('page')). - IkiWiki::basename($filename))); + $filename)); if (IkiWiki::file_pruned($filename)) { error(gettext("bad attachment filename")); } diff --git a/debian/changelog b/debian/changelog index aeb9dc0eb..1f350912e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,8 @@ ikiwiki (3.20100611) UNRELEASED; urgency=low (Workaround bug #586045) * Make --gettime be honored after initial setup. * git: Gix --gettime to properly support utf8 filenames. + * attachment: Support Windows paths when taking basename of client-supplied + file name. -- Joey Hess <joeyh@debian.org> Fri, 11 Jun 2010 13:39:15 -0400 diff --git a/doc/bugs/attachment_upload_does_not_work_for_windows_clients.mdwn b/doc/bugs/attachment_upload_does_not_work_for_windows_clients.mdwn index de57a1441..ad3aadbce 100644 --- a/doc/bugs/attachment_upload_does_not_work_for_windows_clients.mdwn +++ b/doc/bugs/attachment_upload_does_not_work_for_windows_clients.mdwn @@ -4,6 +4,13 @@ It seems as if windows clients (IE) submit filenames with backslash as directory But the attachment plugin translates these backslashes to underscore, making the whole path a filename. +> As far as I can see, that just means that the file will be saved with +> a filename something like `c:__92__My_Documents__92__somefile`. +> I don't see any "does not work" here. Error message? +> +> Still, I don't mind adding a special case, though obviously not in +> `basename`. [[done]] --[[Joey]] + This little hack fixed the backslash problem, although I wonder if that really is the problem? (Everything works perfectly from linux clients of course. :-) |