2015-12-10 4 views
1

У меня есть текстовые данные в БД, и я хочу, чтобы эти данные были переданы пользователю по файлу. Как я могу это сделать? Теперь я делаю так: 1. создаю tmp-файл. 2. Запишите данные в файл. 3. Подайте этот файл с помощью метода getFromFile(). Можно ли сделать это без 1 и 2 шагов?Scala Spray. Выходной текст как файл

+0

Вы можете сделать что-то похожее на это: http://stackoverflow.com/questions/22827029/is-it-possible-to-install-a-callback- после обработки запроса-в-закончил-в-SPR. Вместо создания файла просто есть массив байтов и отправлять обратно куски. Может быть, есть что-то более простое, но я не знаю об этом. –

+0

Спасибо, Алекс, это слишком сложно, я надеюсь, что есть более простой способ. По крайней мере, я знаю, что я не единственный, кто не любит создавать временные файлы на жестком диске xD –

ответ

0

Вы можете сделать что-то вроде:

respondWithMediaType("text/plain") { 
     respondWithHeader(HttpHeaders.`Content-Disposition`.apply("attachment", Map("filename" -> ("text.txt")))) { 
     implicit val bufferMarshaller = BasicMarshallers.byteArrayMarshaller("text/plain") 
     autoChunk(ChunkSizeMagnet.fromChunkSize(5000000)) { 
      withRangeSupport() { 
      complete("file content".getBytes) 
      } 
     } 
     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^