Grails File Download Grails File Download spring spring

Grails File Download


The problem is that you read the content of the file into a String by using "file.text". The content of the file is converted with the system character encoding even if the content is binary, not text (eg. PDF files are binary) and sent to the client using the response encoding and thereby modifing the binary content. You should rather use a different approach like this:

def file = new File(params.fileDir)    response.setContentType("application/octet-stream")response.setHeader("Content-disposition", "attachment;filename=${file.getName()}")response.outputStream << file.newInputStream() // Performing a binary stream copy