Domain class:
class Data {
byte[] pdfFile
static mapping = {
pdfFile sqlType:'longblob' //use mysql
}
static constraints = {
pdfFile nullable:true
}
}
gsp view to submit the url to controller:
<g:form action="savePdf" >
<g:textField name="externalUrl" >
<g:submitButton name="submit" value="Submit" />
</g:form>
DataController:
def savePdf() { //save pdf file into database
def url = params.externalUrl
def localFile = new FileOutputStream('test.pdf')
localFile << new URL(url).openStream()
localFile.close()
def pdfFile = new FileInputStream('test.pdf')
byte[] buf = new byte [102400]
byte[] pdfData = new byte[9024000] //pdf file size limited to 1M
int len = pdfFile.read(buf, 0, 102400)
ByteArrayOutputStream bytestream = new ByteArrayOutputStream()
while(len > 0) {
bytestream.write(buf, 0, len)
len =pdfFile.read(buf, 0, 102400)
}
data.pdfFile = bytestream.toByteArray()
data.save()
}
def renderPdf() { //for pdf file download
def dataInstance = Data.get(params.id)
response.setContentType('application/pdf')
byte[] pdf = dataInstance?.pdfFile
response.outputStream << pdf
}
To trigger renderPdf() method, put a link in another gsp view:
<a href="${createLink(uri:'/data/renderPdf/'+dataInstance.id)}">pdf file</a>
分享到:
相关推荐
Beginning Groovy and Grails From Novice to Professional Christopher M. Judd, Joseph Faisal Nusairat, James Shingler
Apress - Beginning Groovy and Grails, From Novice to Professional.pdf
Advanced web developers are often pleasantly surprised at how easy it is to leverage their existing Spring and Hibernate experience. "Getting Started with Grails" brings you up to speed on this ...
Grails开发Web应用的入门建立兴趣的最佳教程。
grails快速开发web.pdf
详细介绍grails框架的奥秘,英文版你值得拥有
Grails is a full stack web development framework that enables you to build complete web applications in a fraction of the time and with less code than other frameworks. In Grails: A Quick-Start Guide...
Grails企业web应用开发与部署.pdf 很好的资源
The definitive guide to grails 2 英文版 书和随书代码, 学习grails必备
Groovy make java dynamic and Grails make web application more easy to produce
自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。 我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。
自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。...我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。
Grails Grails Grails Grails Grails
关于grails企业web开发环境和部署的一些经验,和大家分享。
Beginning_Groovy_and_Grails_From_Novice_to_Professional开源项目教学代码配合Beginning_Groovy_and_Grails教材使用全是原代码开源。由于上传限制分8个部分
Apress.Beginning.Groovy.and.Grails.From.Novice.to.Professional.2008英文原版
begining groovy and grails
CHAPTER 2 From Java to Groovy CHAPTER 3 Groovy Data Types and Control Structures CHAPTER 4 Object-Oriented Groovy CHAPTER 5 Closures CHAPTER 6 Builders CHAPTER 7 Working with Databases ...
本教程介绍 Grails,这是一个搭建在动态语言 Groovy 之上的开源 MVC 快速 Web 开发框架。使用 Grails 可以提高 Web 开发的效率,降低 Web 开发的复杂度。本文 从 Grails 自动生成代码入手,以示例为中心逐步增加深度...