2012-05-07 20 views
3

私は人がFTP経由でpdfをアップロードできるWebアプリケーションを持っています。 pdfファイルをアップロードした後、私はそのpdf上で特定の操作を実行します。ファイルが破損しているかどうかをJavaで知るには?

しかし、ここでの問題は、FTP経由でPDFをアップロードするときに、接続が途切れてしまい、アップロードされたpdfが完全ではない(破損したように動作する)ことです。その文書をAcrobatリーダーで開くと、メッセージ 'が表示されます。文書を開く際にエラーが発生しました。ファイルが破損して修復できませんでした '。

これで、PDFを処理する前に、アップロードされたPDFが読み込み可能であることが破損していないかどうかを確認したいと思います。

javaにはAPIを用意するか、ファイルが破損していないかどうかを確認する方法があります。

+7

'MD5SUM'を使ってローカルハッシュを作成し、アップロード後にリモートハッシュを作成して比較します。 –

答えて

7

私たちはiText APIをJavaで使用してPDFファイルを処理しています。

PDFファイルが読み込みおよび読み取りに有効かどうかを確認するには、com.itextpdf.text.pdf.PdfReaderを使用してください。
ファイルが破損している場合は、com.itextpdf.text.exceptions.InvalidPdfExceptionのような例外がスローされます。

サンプルコードスニペット

com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: 
    trailer not found.; Original message: PDF startxref not found. 

:アップロードされたが、破損したファイルの場合は

... 
import com.itextpdf.text.pdf.PdfReader; 
... 
try { 
    PdfReader pdfReader = new PdfReader(pathToUploadedPdfFile); 

    String textFromPdfFilePageOne = PdfTextExtractor.getTextFromPage(pdfReader, 1); 
    System.out.println(textFromPdfFilePageOne); 
} 
catch (Exception e) { 
    // handle exception 
} 

、次のエラー直面する可能性があり、このような例外を生成することを、してみてくださいネットからpdfファイルを保存しますが、途中で中止します。
コードスニペットをロードし、安全にロードされているかどうかを確認します。

iText APIの詳細例は、hereです。

+0

ビットマップ/イメージファイルが破損しているかどうかを確認するには? – DearDhruv

+0

質問を詳しく説明できますか?そして、それを 'itext'でどのように使いたいのですか? –

+0

私は、格納されたイメージが壊れているかどうかを調べる方法はあるかどうかを知る必要がありますか? [アンドロイド、java] – DearDhruv

関連する問題