我有一个用JSP编写的web项目,后端有几个Java类。我想要创建一个页面,用户上传图像,然后将其保存在数据库中。
我有一个页面,用户在其中上传图像,其表单如下:
<form action="UploadImage.jsp" method="post" enctype="multipart/form-data">
<input type="file" name="file" accept="image/*">
<input type="submit" name="submit" value="Upload Image">我想让我的UploadImage.jsp文件将这个图像保存到LongBLOB数据库中的一个MySQL对象中。我尝试使用request.getParameter()和request.getPart(),但它们都返回null,以及在NullPointerException中使用这些结果的任何尝试。
我尝试在线查看,但是所有的解决方案都涉及到使用servlet,而不是JSP页面。是的,我知道使用JSP并不是最好的实践,但是为了这个项目的目的,它是我必须使用的。
发布于 2017-06-21 11:37:17
您必须使用
P=request.getpart部分(“文件”);
输入流is=p.getinputstream(p);
byte[] b=Ioutils.getBytes(is);
然后,可以使用设置字节存储在mysql中。
您还在类名之前声明了servlet上的多部分注释。
发布于 2017-06-16 13:07:45
您可以使用ServletFileUpload类解析请求,并将多个文件(在您的例子中是图像)上载到服务器上的临时目录中,然后只需将文件的位置存储为数据库中的路径。
ServletContext context = pageContext.getServletContext();
String filePath = "c:\\apache-tomcat\\webapps\\images\\";
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File("c:\\temp"));
ServletFileUpload uploader = new ServletFileUpload(factory);
try {
List files = upload.parseRequest(request);
Iterator<FileItem> iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem file = iter.next();
File serverFile = new File(filePath +
file.getName().substring(fileName.lastIndexOf("\\")));
file.write(serverFile);
}
} catch(Exception ex) {
System.out.println(ex);
}https://stackoverflow.com/questions/44588594
复制相似问题