2012-03-05 8 views
0

私はPDFKitを使ってブラウザにPDFを生成しています。私はその後PDFを竜巻ウェブサーバに掲示しています。私はダウンロードしてブラウザに戻したいと思います。ここでは、要求ハンドラは次のとおりです。JavaScriptを使用してTornadoからバイナリを生成

class PDF(RequestHandler): 
    def post(self): 
     logger.info("Received PDF.") 
     self.set_header('Content-Type', 'application/pdf') 
     self.set_header('Content-Disposition', 'attachment; filename="export.pdf"') 
     self.write(self.request.body) 
     logger.info("Returning PDF.") 

ただし、ダウンロードしたPDFは、URLエンコード(スラッシュなど%2F、のように見える)ように見えます。私はここで間違って何をしていますか?

+1

これらの問題を抱えているのはアップロードされたPDFではありませんか?おそらくアップロードフォームをエンコードする方法に問題がありますか? –

+0

あなたはそうです。ですから、私は実際にアップロードされたPDFをまずbase64エンコーディングしています。私は現在、サーバー側でデコードしていますので、ファイルは見た目が良くなりますが、まだ有効なPDFとして認識されていません。 –

+0

あなたはそれをサーバー上のローカルファイルに保存しようとしましたが、竜巻から戻ってこないようにしました。 –

答えて

0

問題は実際にはbase64デコードとURLアンエスケープの組み合わせでした。以下は現在動作しています:

class PDF(RequestHandler): 
    def post(self): 
     self.set_header('Content-Type', 'application/pdf') 
     self.set_header('Content-Disposition', 'attachment; filename="export.pdf"') 
     self.write(b64decode(escape.url_unescape(self.request.body.split("=")[1]))) 
関連する問題