关于Grails GSP

时间:2013-12-16 05:24:15

标签: grails

我创建了一个本地驱动器中的word文档,应该使用grails gsp页面在浏览器中打开它。

有关创建是创建链接还是使用脚本的选项有哪些。 在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

要打开或已下载有很多选项

  1. 是使用File Viewer Grails插件Grails File Plugin

  2. 只需在.gsp文件中提供如下链接,当您使用以下代码按下该文档的链接时,可以选择downloadview option/open。< / p>

  3. 表格列表中的

    显示从数据库或其他来源获取的链接

    <table>
    
            <thread>
            <tr>
                <g:sortableColumn property="filename" title="Filename" />
                <g:sortableColumn property="upload" title="Upload Date" />
            </tr>
            </thread>
            <tbody>
                <g:each in="${documentInstanceList}" status="i"
                    var="documentInstance">
                    <tr class="${(i%2)==0?'even':'odd'}">
                        <td><g:link action="download" id="${documentInstance.id}">
                                ${documentInstance.filename}
                            </g:link></td>
                        <td><g:formatDate date="${documentInstance.uploadDate}" /></td>
                </g:each>
            </tbody>
        </table>
    

    在你的下载行动中的DocumentController中放置此代码,使文件可根据浏览器选项下载或查看

    def download(long id) {
            Document documentInstance = Document.get(id)
            if (documentInstance == null) {
                flash.message = "Document not found."
                redirect(action:'list')
            }
    
            else {
    
                response.setContentType("APPLICATION/OCTET-STREAM")
                response.setHeader("Content-Disposition","Attachment;Filename=\"${documentInstance.filename}\"")
    
                def file = new File(documentInstance.fullpath)
                def fileInputStream = new FileInputStream(file)
    
                def outputStream = response.getOutputStream()
    
                byte[] buffer = new byte[4096];
                int len ;
                while((len = fileInputStream.read(buffer))>0) {
                    outputStream.write(buffer,0,len);
                }
    
                outputStream.flush()
                outputStream.close()
                fileInputStream.close()
            }
        }
    

    现在就让我吧...... 。

答案 1 :(得分:0)

我不知道任何允许您在浏览器/ grails应用程序中直接呈现word文档的插件。过去,旧版本的Word&amp; IE 7/8,但现在不再是这样了。

word文档基本上是一个带有各种标记的XML文档,告诉文本如何呈现等等,你可以考虑加载这种格式。有人之前可能已经这样做了,所以如果你想调查这个选项,我建议google-ing“word document parsing”或类似的东西。另一方面,如果您只对文档文本感兴趣,也许可以将word文档保存为txt?

希望有所帮助。