如何在servlet中处理上传的图像?

时间:2013-01-17 09:08:19

标签: java database jsp servlets

在jsp页面中我已经上传了一个图像文件,我将该Jsp页面转发到Servlet,我想在Servlet中检索该图像并将该图像添加到数据库中.......任何人都可以解释如何检索图像在servlet中并将该图像添加到数据库? 例如:我们可以使用request.getParameter(“string”)检索字符串; 以同样的方式是否有任何预先定义的方法来检索图像? 例如:prepareStatement.setInt(colomnindex); 以同样的方式是否有任何预定义的方法将图像添加到DataBase?

2 个答案:

答案 0 :(得分:0)

像这样的东西

HTML / JSP

< input type =“file”name =“foto”/>

<强>的Serlvet

String fotoURL = req.getParameter("foto");
        System.out.println(fotoURL);
        URL urlFoto = null;
        urlFoto = getClass().getClassLoader().getResource(fotoURL); 


        System.out.println(urlFoto);
        BufferedImage foto = ImageIO.read(urlFoto);

答案 1 :(得分:0)

首先,使用JSP选择要上传的文件,至少需要一个HTML元素,该元素将显示文件浏览字段。

<form action="upload" method="post" enctype="multipart/form-data">
   <input type="file" name="file">
   <input type="submit">
</form>

检索servlet中的上传文件,

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
   if (!item.isFormField()) {
    // <input type="file">
    System.out.println("Field name: " + item.getFieldName());
    System.out.println("File name: " + item.getName());
    System.out.println("File size: " + item.getSize());
    System.out.println("File type: " + item.getContentType());
  } else {
    // <input type="text|submit|hidden|password|button">, <select>, <textarea>,<button>
    System.out.println("Field name: " + item.getFieldName());
    System.out.println("Field value: " + item.getString());
  }              
 }

您只需要从FileItem对象获取InputStream并将其写入任何OutputStream。

   InputStream content = item.getInputStream();
                     OR
   item.write(new File("/uploads/filename.ext"));