0

私はドメインクラスを持っています

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

ここで、Course、Departmentは他のドメインクラスです

私の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つのドロップダウンがあり、そのうちの3つを選択してダウンロードリンクをクリックすると、データベースにアップロードされた特定のPDFをダウンロードする必要があります。

コードを実行してもエラーは発生しませんが、「ページが応答しなくなります。ブラウザを強制終了するか、しばらくお待ちください」というメッセージが表示されます。

4

1 に答える 1

0

document.getElementById( "subjectResult")。innerHTML=responseにPDFを挿入することはできません

htmlでpdfをレンダリングしたい場合は、pdf.jsを使用してください

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

于 2012-08-06T13:31:31.400 に答える