将PDF上传到JSP中的数据库和存储系统(文件夹)



就像标题一样,我想问,如何将带有上传表单的pdf文件添加到我的存储文件夹中(例如:uploadData),然后将其作为JSP中的文件添加到数据库中。

若不可能,可以将其作为文本添加到数据库中。

如果可能的话,我的pdf表格是什么类型的?斑点?还是文本?

我接受与我的问题相关的博客链接/其他链接

抱歉英语不好。

Servlet 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>

现在编写一个UploadServlet,它使用Servlet 3.0 Uploadneneneba API。下面是演示API使用的代码。首先,处理多部分数据的servlet应该使用以下两种方法中的任何一种来定义MultiPartConfig:

  • @Servlet类上的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 Commons File Upload。以下是使用Apache Commons文件上传的链接:

  • 使用Apache Commons文件上载
  • Apache Commons文件上载示例

参考文献:

  • 使用Servlet 3.0上传文件
  • Servlet 3.0 javax.Servlet.http.HttpServletRequest API
  • Servlet 3.0 javax.Servlet.http.Part API
  • 使用Servlet 3.0上传文件

据我所知,处理文件上传的最简单方法是使用Commons FileUpload。该文档为您提供了如何接受上传文件的逐步概述,包括如何轻松地将其复制到文件中。

如果你决定把PDF放在数据库中(我不会这么做),BLOB是你的最佳选择,PDF文件不是文本。

然而,我建议不要将所有这些逻辑都塞进JSP中,而是塞进servlet中。