
document.UploadForm.cleanUpFileName
-----------------------------------

Uploads from win/IE need some cleanup because the filename includes also the path.

  >>> from p01.fswidget.converter import extractFileName

Plain filename:

  >>> extractFileName('text.doc')
  'text.doc'

Windoze fun:

  >>> extractFileName('c:\\text.doc')
  'text.doc'

  >>> extractFileName('c:\\text')
  Traceback (most recent call last):
  ...
  ValueError: Missing filename extension.

  >>> extractFileName('c:\\Program Files\\text.doc')
  'text.doc'

  >>> extractFileName('c:\\Program Files\\text')
  Traceback (most recent call last):
  ...
  ValueError: Missing filename extension.

  >>> extractFileName('text..doc')
  'text..doc'

  >>> extractFileName('text...doc')
  'text...doc'

  >>> extractFileName('u:\\my.crap\\text..doc')
  'text..doc'

linux fun:

  >>> extractFileName('/home/adi/text.doc')
  'text.doc'

  >>> extractFileName('/text')
  Traceback (most recent call last):
  ...
  ValueError: Missing filename extension.

  >>> extractFileName('/home/adi/text')
  Traceback (most recent call last):
  ...
  ValueError: Missing filename extension.

  >>> extractFileName('/home/adi/text..doc')
  'text..doc'

  >>> extractFileName('/home/adi/text...doc')
  'text...doc'

  >>> extractFileName('/home/new adi/text.doc')
  'text.doc'

  >>> extractFileName('/home/new.adi/text.doc')
  'text.doc'

mac fun:
(no idea if this is valid)

  >>> extractFileName('home:adi:text.doc')
  'text.doc'

  >>> extractFileName('home:adi:text...doc')
  'text...doc'

  >>> extractFileName('home:new adi:text.doc')
  'text.doc'

  >>> extractFileName('home:new.adi:text.doc')
  'text.doc'


script injection prevention:

  >>> extractFileName('<script>alert("inject")</script>.doc')
  'script_gt_.doc'

  >>> extractFileName('<script>alert("inject")</script>.doc',
  ... allowEmptyPostfix=True)
  '_lt_script_gt_alert("inject")_lt_/script_gt_.doc'
