我们有一个可以下载pdf文件的URL。 问题是,我们有一个输入文本字段,我们提供URL,并且我们有一个提交按钮。如果我们点击提交按钮,然后下载相关文件并解析并存储在数据库中。使用grails解析pdf文件并将数据存储到数据库中
-1
A
回答
3
域类:
class Data {
byte[] pdfFile
static mapping = {
pdfFile sqlType:'longblob' //use mysql
}
static constraints = {
pdfFile nullable:true
}
}
GSP视图提交URL的控制器,即getFile.gsp例如:
<g:form url="[action:'savePdf',controller:'data']" >
<g:textField name="externalUrl" >
<g:submitButton name="submit" value="Submit" />
</g:form>
DataController类:
class DataController {
def savePdf() { //save pdf file into database
def url = params.externalUrl // for example:'http://moodle.njit.edu/tutorials/downloading_moodle.pdf'
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[10240000] //pdf file size limited to 10M
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
}
}
要触发renderPdf()方法,把一个链接在另一个GSP视图,让我们说render.gsp:
删除或已回答的问题<a href="${createLink(uri:'/data/renderPdf/'+dataInstance.id)}">pdf file</a>
相关问题
- 1. 解析XML文件并将其存储到数据库中
- 2. 如何解析CSV文件并将其数据存储到数据库中?
- 3. 解析上传的CSV文件并将数据存储到数据库中
- 4. 将数组的文本存储到解析数据库中
- 5. 使用python将数据库数据存储到json文件中
- 6. PHPExcel:解析电子表格数据并存储到数据库
- 7. 读取XML文件并将数据存储到mysql数据库
- 8. 解析字符串,并将其存储到数据库
- 9. 如何解析相关数据并将值存储到数据库
- 10. 如何使用python解析日志文件并将数据存储在数据库中?
- 11. 解析日期并将其存储在SQLite数据库中
- 12. 将PDF存储在MySQL数据库中
- 13. 在XML中解析数据并在Python中存储到数据库
- 14. laravel读取文件并将值解析到数据库中?
- 15. 解析特定网站数据并将它们存储在数据库表中
- 16. 如何使用C#将pdf文件存储到/从SQLITE数据库中检索?
- 17. CakePHP从文件解析数据并添加到数据库
- 18. 将PDF转换为Base64并将数据存储到数据库的BLOB
- 19. 解析RSS数据库和存储在数据库中
- 20. 如何解析日志文件并将数据加载到数据库中
- 21. 使用XQuery将xml文件存储到eXist xml数据库中
- 22. 解析方法,并将其存储在数据库
- 23. 将pdf文件存储在数据库中
- 24. 使用Grails 3.0将Spring Boot用户存储在数据库中
- 25. 解析CSV并导出到Grails的Mysql数据库中
- 26. 用BeautifulSoup解析数据并用熊猫数据存储DataFrame to_csv
- 27. 使用python将文本文件存储到SQLite3数据库
- 28. 将用户数据存储在csv文件vs数据库中
- 29. 解析CSV并将数据存储在结构数组中?
- 30. 如何在数据库中将数据存储到数据库
重复。 –