This is a known bug. Thanks for the patch. The problem with it is that filenames
containing backslash characters are valid on Unix. I haven't been able to come
up with a solution to this. Any ideas?
--jfarr
"Perl is worse than Python because people wanted it worse."
Larry Wall, 14 Oct 1998
----- Original Message -----
From: Dan L. Pierson <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, June 15, 2000 12:58 PM
Subject: [Zope] LocalFS cross platform bug
> If you upload from a browser on a Windows machine to a server running
> on Linux, the id (and thus the file name) of the new file will be the
> complete Windows path instead of just the file name. This happens
> because os.basename on Linux doesn't know how to handle Windows
> pathname syntax.
>
> Here's a rather crude diff -u patch that works for me:
>
> --- LocalFS.py-orig Fri Apr 14 00:36:06 2000
> +++ LocalFS.py Thu Jun 15 15:36:19 2000
> @@ -625,10 +625,16 @@
> "to this directory.<p>")
> else: raise
>
> + def _canonicalize_pathname(self, path):
> + if (string.count(path, '\\')):
> + if (len(path) > 1 and path[0] in string.letters and path[1] ==
':'):
> + path = path[2:]
> + path = string.translate(path, string.maketrans('\\', '/'))
> +
> def manage_upload(self, file, REQUEST=None):
> """Upload a file to the local file system. The 'file' parameter
> is a FileUpload instance representing the uploaded file."""
> - id = os.path.basename(file.filename)
> + id = os.path.basename(self._canonicalize_pathname(file.filename))
> path = self._getpath(id)
> data = file.read(_test_read)
> if (find_binary(data) >= 0):
>
> _______________________________________________
> Zope maillist - [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )
>
_______________________________________________
Zope maillist - [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
http://lists.zope.org/mailman/listinfo/zope-announce
http://lists.zope.org/mailman/listinfo/zope-dev )