は私がフォームを送信で サーブレットを使用してpostgresqlデータベースにpdfファイルを保存する方法は?
<center><form action="pdf" method="post" enctype="multipart/form-data">
<b>Upload Certificate</b>
<input type="file" name="file"/></center>
<center> <input type="submit" /></center>
</form>
HTML
からファイルをアップロードしています、PDFサーブレットが呼び出されます。サーブレットの内部では、要求オブジェクトが解析され、ファイル(pdf)は以下のコードに示すようにInputStreamを使用して読み込まれます。
protected void doPost(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse)
throws ServletException, IOException
{
try
{
List localList = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(paramHttpServletRequest);
for (FileItem localFileItem : localList)
{
String str1 = localFileItem.getFieldName();
String str2 = FilenameUtils.getName(localFileItem.getName());
System.out.println("fieldname:" + str1);
System.out.println("filename:" + str2);
InputStream localInputStream = localFileItem.getInputStream();
try
{
PdfReader localPdfReader = new PdfReader(localInputStream);
paramHttpServletResponse.sendRedirect("takedetails.jsp");
}
catch (InvalidPdfException localInvalidPdfException)
{
paramHttpServletResponse.sendRedirect("upload.jsp");
}
}
}
catch (FileUploadException localFileUploadException)
{
throw new ServletException("Cannot parse multipart request.", localFileUploadException);
}
}
ご覧のとおり、InputStreamオブジェクトを使用して、ファイル形式をpdfとして確認しました。
このpdfファイルをpostgresqlデータベースに保存します。 postgresqlでどのフィールドを使用すればよいですか?また、ファイルをデータベースに格納するためにInputStreamオブジェクトからファイルを取得する方法はありますか?
メモリ内のバイト[]を使用する代わりに、一時的なファイル、またはインメモリバッファから一時的なファイルに切り替えることを知っているスマートバッファクラスを使用することを検討してください。また、おそらくあなたにとって重要ではありませんが、byteaは1GBに制限されています。大きなファイルの場合は、DBの外にそれらを格納し、パスとチェックサムだけを格納します。 –
@BalusCありがとうございます:)それはちょうど完璧な答えでした。私はちょうど小さな最終的な疑いを持っています。検索中はバイナリデータを取得します。それをファイルに変換してそのPDFファイルを表示するには、どうすればよいですか? – suraj
'ResultSet#getBinaryStream()'を使用して、DBから 'InputStream'として取得します。それをダウンロードとして提供しますか?適切なレスポンスヘッダに沿って 'HttpServletResponse#getOutputStream()'に書き込むだけで、ブラウザが何をするべきかを理解できるようになります。ファイルとして保存しますか? 'new FileOutputStream()'に書き出してください。 Etcetera。あなたのフレーバーに 'OutputStream'を書くだけです。 http://stackoverflow.com/questions/4614935/how-to-display-a-pdf-file-in-jsp-using-servlet/4615155#4615155 – BalusC