Index: modules/upload.module =================================================================== RCS file: /cvs/drupal/drupal/modules/Attic/upload.module,v retrieving revision 1.100.2.12 diff -u -Ftion -r1.100.2.12 upload.module --- modules/upload.module 1 Jan 2007 18:10:05 -0000 1.100.2.12 +++ modules/upload.module 5 Jan 2007 11:07:12 -0000 @@ -189,6 +189,19 @@ function upload_file_download($file) { $node = node_load($file->nid); if (node_access('view', $node)) { $name = mime_header_encode($file->filename); + // Mime filename should be double quoted to handle filenames with spaces. + if (preg_match('/[^\x20-\x7E]/', $file->filename)) { + // non-ascii --> needs encoding. + $name = mime_header_encode($file->filename); + } + else if (preg_match('/[ \(\)\<\>\@\,\;\:\\\"\/\[\]\?\=]/', $file->filename)) { + // n tokens, tspecials characters, SHOULD be 'quoted-string'. + $name = '"'. $file->filename .'"'; + } + else { + // only ascii, one token, no tspecials. + $name = $file->filename; + } $type = mime_header_encode($file->filemime); return array( 'Content-Type: '. $type .'; name='. $name,