1

タイトルと同じように、アップロードフォームを使用してPDFファイルをストレージフォルダー(例:uploadData)に追加し、JSPでもファイルとしてデータベースに追加する方法を尋ねたいと思います。

それが不可能な場合は、データベースにテキストとして追加してもかまいません。

ファイルとして可能であれば、そのpdfのテーブルのタイプは何ですか?ブロブ?またはテキスト?

私は自分の問題に関連するブログリンク/その他のリンクを受け入れます

英語が下手でごめんなさい。

4

2 に答える 2

2

サーブレット3.0コンテナは、マルチパートデータを標準でサポートしています。また、ローカルファイルシステムへの書き込みもサポートしています。まず、他の入力パラメータとともにファイル入力を受け取るHTMLページを作成する必要があります。

<form action="uploadservlet" method="post" enctype="multipart/form-data">
    <input type="text" name="name" />
    <input type="text" name="age" />
    <input type="file" name="photo" />
    <input type="submit" />
</form>

次に、サーブレット3.0アップロードAPIを使用するUploadServletを記述します。APIの使用法を示すコードは次のとおりです。マルチパートデータを処理するサーブレットは、次の2つのアプローチのいずれかを使用してMultiPartConfigを定義する必要があります。

  • サーブレットクラスの@MultiPartConfigアノテーション
  • web.xmlで、定義内にエントリを追加します。

これがUploadServletです。

@MultipartConfig
public class UploadServlet extends HttpServlet
{
  protected void service(HttpServletRequest request, 
   HttpServletResponse responst) throws ServletException, IOException
  {
  Collection<Part> parts = request.getParts();
  if (parts.size() != 3) {
     //can write error page saying all details are not entered
   }

   Part filePart = httpServletRequest.getPart("photo");
   InputStream imageInputStream = filePart.getInputStream();
   //read imageInputStream
   filePart.write("somefiepath");
   //can also write the photo to local storage

   //Read Name, String Type 
   Part namePart = request.getPart("name");
   if(namePart.getSize() > 20){
       //write name cannot exceed 20 chars
   }
   //use nameInputStream if required        
   InputStream nameInputStream = namePart.getInputStream();
   //name , String type can also obtained using Request parameter 
   String nameParameter = request.getParameter("name");

   //Similialrly can read age properties
   Part agePart = request.getPart("age");
   int ageParameter = Integer.parseInt(request.getParameter("age"));



}

}

Sevlet 3.0 Containerを使用していない場合は、Apache CommonsFileUploadを使用する必要があります。Apache CommonsFileUploadを使用するためのリンクは次のとおりです。

参照:

于 2012-07-23T18:06:21.953 に答える
0

ファイルのアップロードを処理するために私が知っている最も簡単な方法は、CommonsFileUploadを使用することです。ドキュメントには、アップロードされたファイルをファイルに簡単にコピーする方法など、アップロードされたファイルを受け入れる方法の概要が段階的に示されています。

PDFをデータベースに入れることにした場合(私はそうしません)、BLOBが最良の選択であり、PDFファイルはテキストではありません。

ただし、JSPではなくサーブレットにすべてのロジックを詰め込むことをお勧めします。

于 2012-07-23T14:07:13.040 に答える