[英]How to upload a csv to a JSP page and send the data in it to a MySQL database?
[英]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.