我想使用Play框架從數據庫下載文件。 但是當我使用這個代碼,我得到這個消息:PlayFramework:值不是Array的成員[Byte]
值不是陣列成員(字節)
如果我改變Ok(bytOfImage.as("image/jpg"))
到Ok(bytOfImage)
它的作品不錯,但我得到一個文件有一個名字:secondindex
沒有.jpg
這裏是我的控制器:
def secondindex(number: Int) = Action {
var bytOfImage = Array[Byte](1)
val conn = DB.getConnection()
try {
val stmt = conn.createStatement
val rs = stmt.executeQuery("SELECT image from images where id = " + number)
while(rs.next()) {
var blob = rs.getBlob("image")
bytOfImage = blob.getBytes(1, blob.length().toInt)
blob.free()
}
} finally {
conn.close() }
Ok(bytOfImage.as("image/jpg"))
}
謝謝!是工作!你能否告訴我如何下載我的圖片,因爲現在它顯示在瀏覽器中 - 但我想下載。 –
您需要將「Content-Disposition」標題設置爲「附件」。按照這個http://stackoverflow.com/questions/11559304/how-to-send-a-file-to-browser-for-downloading答案,你可以將InputStream傳遞給'Ok()'方法來設置它自動。將你的字節數組轉換成流不應該是一個問題。 –