2013-03-13 9 views
6

Bir grails uygulama üzerinde çalışıyorum, bir dosya paylaşım özelliği vardır. Dosyaları sunucuya yükler ve kullanıcının dosyayı sunucudan indirmesine izin verir.Büyük dosya indir grants kullanarak indirme

def file = new java.io.File(filePath) 
response.setContentType("application-xdownload") 
response.setHeader("Content-Disposition", "attachment;filename=${fileName}") 
response.getOutputStream() << new ByteArrayInputStream(file.getBytes()) 

Bu kod küçük dosyalar için çalışıyor ancak dosyanın boyutu artırıldığında, yani> 100MB, bana aşağıdaki hatayı veriyor: Yani

java.lang.OutOfMemoryError: Java heap space 

Bunun için aşağıdaki kodu kullanılmış , uygulamamın büyük dosyaları indirebilmesini sağlamak için ne yapabilirim? Bunun yerine belleğe dosya yükleme, yerine Teşekkür

cevap

9

ile

response.getOutputStream() << new ByteArrayInputStream(file.getBytes()) 

:

file.withInputStream { response.outputStream << it } 
+0

sayesinde !! harika çalıştı! –