首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使JSP页面将图像上载到MySQL数据库?

问如何使JSP页面将图像上载到MySQL数据库?
EN

Stack Overflow用户
提问于 2017-06-16 11:51:41
回答 2查看 984关注 0票数 1

我有一个用JSP编写的web项目,后端有几个Java类。我想要创建一个页面,用户上传图像,然后将其保存在数据库中。

我有一个页面,用户在其中上传图像,其表单如下:

代码语言:javascript
复制
<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并不是最好的实践,但是为了这个项目的目的,它是我必须使用的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-21 11:37:17

您必须使用

P=request.getpart部分(“文件”);

输入流is=p.getinputstream(p);

byte[] b=Ioutils.getBytes(is);

然后,可以使用设置字节存储在mysql中。

您还在类名之前声明了servlet上的多部分注释。

票数 0
EN

Stack Overflow用户

发布于 2017-06-16 13:07:45

您可以使用ServletFileUpload类解析请求,并将多个文件(在您的例子中是图像)上载到服务器上的临时目录中,然后只需将文件的位置存储为数据库中的路径。

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44588594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档