2012-08-06 39 views
0

我有一个域类我已存储的PDF文件作为一个blob,一个当我尝试以使其在浏览器

class UploadSyllabus { 
    String semester 
    Course course 
    Department department 
    byte[] uploadSyllabus 
} 

其中课程,系其他领域类

一个pdf在我Show.gsp

<a style="margin-left: 108px;"href="javascript:getPdfFromDB()" id="downloadPdf">Download_Syllabus.pdf</a> 


function getPdfFromDB(){ 
    var formdata = $("#downloadSyllabusForm").serialize(); 
    $.get("${grailsApplication.config.grails.serverURL}/uploadSyllabus/getPdfFromDBC", formdata, function(response) { 
     for (var i = 0; i < response.length; i++) { 
      document.getElementById("subjectResult").innerHTML=response 
      document.getElementById("courseResult").innerHTML=$("#course option:selected").text(); 
      document.getElementById("semesterResult").innerHTML=$("#semester option:selected").text(); 
     } 
    }); 
} 

我的控制器的动作:

def getPdfFromDBC = { 
    def sem = params.semester 
    def course = params.course 
    def department = params.department 
    List s= UploadSyllabus.executeQuery("select id from UploadSyllabus where department_id = "+params.department +"AND course_id = "+params.course + "AND semester = "+sem) 
    def product = UploadSyllabus.get(s[0]) 
    println "product is ---"+product 
    response.contentType = 'application/pdf' 
    response.setHeader('Content-disposition', 'Attachment; filename=uploadSyllabus.pdf') 
    response.getOutputStream().write(product.uploadSyllabus) 
    response.getOutputStream().flush() 
    // render s.name as SHALLOW 
} 

我需要做什么,我有三个下拉列表在我的查看页面,当我选择其中3个并点击下载链接时,那么已经上传到数据库中的特定pdf需要下载。

当我运行我的代码时,我没有收到任何错误,但“页面变得没有反应,请杀死或等待浏览器。”感谢名单了很多:

回答

0

,如果你想渲染HTML中使用pdf.js

https://github.com/mozilla/pdf.js

+0

xfermi PDF您不能插入的document.getElementById PDF( “subjectResult”)的innerHTML =响应

。我明白了这个问题。代码正在工作:) – 2012-08-07 06:33:21

相关问题