簡體   English   中英

如何創建JSP頁面以將圖像上載到MySQL數據庫?

[英]How do I make a JSP page to upload an image to a MySQL database?

我有一個用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文件將此圖像保存到MySQL數據庫中的LongBLOB對象。 我嘗試使用request.getParameter()和request.getPart(),但它們都返回null,並且任何嘗試使用這些都會導致NullPointerException。

我試過在線查看,但所有解決方案都涉及使用servlet而不是JSP頁面。 是的,我知道使用JSP不是最佳實踐,但出於本項目的目的,我必須使用它。

您可以使用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);
}

你必須使用

部分p = request.getpart(“file”);

inputstream is = p.getinputstream(p);

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

然后你可以使用Setbytes存儲在mysql中

並且您還在類名之前在servlet上聲明了多部分注釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM