Tweaked controller.Files.download() to better handle filenames with weird characters.
This commit is contained in:
parent
9743859b41
commit
dcd40eaa45
|
@ -264,7 +264,7 @@ class Files( object ):
|
||||||
db_file = self.__database.load( File, file_id )
|
db_file = self.__database.load( File, file_id )
|
||||||
|
|
||||||
cherrypy.response.headerMap[ u"Content-Type" ] = db_file.content_type
|
cherrypy.response.headerMap[ u"Content-Type" ] = db_file.content_type
|
||||||
cherrypy.response.headerMap[ u"Content-Disposition" ] = u"attachment; filename=%s" % db_file.filename
|
cherrypy.response.headerMap[ u"Content-Disposition" ] = u'attachment; filename="%s"' % db_file.filename.replace( '"', r"\"" )
|
||||||
cherrypy.response.headerMap[ u"Content-Length" ] = db_file.size_bytes
|
cherrypy.response.headerMap[ u"Content-Length" ] = db_file.size_bytes
|
||||||
|
|
||||||
def stream():
|
def stream():
|
||||||
|
|
|
@ -33,7 +33,7 @@ class Test_files( Test_controller ):
|
||||||
self.file_id = "22"
|
self.file_id = "22"
|
||||||
self.filename = "file.png"
|
self.filename = "file.png"
|
||||||
self.new_filename = "newfile.png"
|
self.new_filename = "newfile.png"
|
||||||
self.file_data = "foobar\x07`-=[]\;',./~!@#$%^&*()_+{}|:\"<>?" * 100
|
self.file_data = "foobar\x07`-=[]\;',./ ~!@#$%^&*()_+{}|:\"<>?" * 100
|
||||||
self.weird_filename = self.file_data + ".png"
|
self.weird_filename = self.file_data + ".png"
|
||||||
self.content_type = "image/png"
|
self.content_type = "image/png"
|
||||||
self.upload_thread = None
|
self.upload_thread = None
|
||||||
|
@ -139,7 +139,7 @@ class Test_files( Test_controller ):
|
||||||
headers = result[ u"headers" ]
|
headers = result[ u"headers" ]
|
||||||
assert headers
|
assert headers
|
||||||
assert headers[ u"Content-Type" ] == self.content_type
|
assert headers[ u"Content-Type" ] == self.content_type
|
||||||
assert headers[ u"Content-Disposition" ] == u"attachment; filename=%s" % self.filename
|
assert headers[ u"Content-Disposition" ] == u'attachment; filename="%s"' % self.filename
|
||||||
|
|
||||||
gen = result[ u"body" ]
|
gen = result[ u"body" ]
|
||||||
assert isinstance( gen, types.GeneratorType )
|
assert isinstance( gen, types.GeneratorType )
|
||||||
|
|
Reference in New Issue
Block a user