[development] upload module or maybe url() bug
Matt Connolly
matt at cabinetuk.com
Mon Jun 30 11:32:10 UTC 2008
I have a question about url encoding
Spaces in URLS are normally translated to "%20" and spaces in queries
are normally translated into "+", although the "%20" is correctly
decoded.
I'm discovering that private file uploads are not working when there
is a "+" in the file name. This is being translated into a " " (space)
which is quite normal for queries.
With public downloads, (ie accessibly directly via http://mydrupalsite/sites/files/fred+wilma.jpg
" the file works. So apache doesn't translate the + in the file's path
name into a space, and the file is downloaded.
With private downloads, the file name is placed into a query, thanks
to mod_rewrite (or, becomes http://mydrupalsite/q?=system/files/fred+wilma.jpg
" . You can see where the problem is.
I can easily fix this by altering the "file_create_url" function in "/
includes/file.inc". I know I've been warned to not change drupal's
core modules and code, but ..... I think I need to.
However, I wonder if the problem would be better handled in the
"url()" function?
I notice that if you create page url's "bananas+pears" and "apples and
oranges" the urls are all encoded with %20. So it seems you can't use
the "+" in a custom URL. Butt least here what you type and what you
get are consistent.
Any thoughts?
-Matt
More information about the development
mailing list