2017-08-22 115 views
0

我需要將字符串保存到文本文件併發送到瀏覽器。我的路線:akka-http。生成文件併發送到客戶端

def genFileRoute: Route = 
    path("someresource"/"generate") { 
     get { 
      complete(genFile) 
     } 
    } 

但我有發電機的一個問題:

def genFile = { 
    val str = "Hi all! I am a string in future text file" 

    // Need to write some code here :(
    // Something like 'php://output' with headers, but for akka. 
} 

如何創建內存文本文件file.txt,不使用文件系統?如何將它發送給客戶瀏覽器(下載)?

P.S.對不起,我的英文不是我的母語。

回答

3

您希望使用Content-Disposition標題 - 它允許您設置發送到瀏覽器的文件名。根本不需要創建文件;在你的例子中,函數可以返回一個純String。

def genFile = { 
    val str = "Hi all! I am a string in future text file" 

    str 
} 

路線:

path("someresource"/"generate") { 
    get { 
    respondWithHeader(`Content-Disposition`(
     ContentDispositionTypes.attachment, Map("filename" -> "somefile.txt"))) { 
     complete(genFile) 
    } 
    } 
} 
相關問題