我們有一個可以下載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. 如何在數據庫中將數據存儲到數據庫
重複。 –