Я создаю приложение, в котором я сохраняю Excel-содержимое в базе данных, Container сохраняет в базе данных, но теперь я хочу сохранить имя файла загрузки файла вместе с этим, я устал от логики DiskFileItemFactory, но она не будет работать, кто-то может помочь, это действительно ценитсяВот мой Excel содержит код хранения
upload.html
<Html>
<HEAD><TITLE>Display file upload form to the user</TITLE></HEAD>
<BODY>
<FORM ENCTYPE="multipart/form-data" action="xlsUpload_01.jsp" method="post">
<br><br><br>
<center><table border="2" >
<tr><td><b>Choose the file To Upload:</b>
</td>
<td><INPUT NAME="file" TYPE="file"></td></tr>
<tr><td colspan="2">
<p align="right"><INPUT TYPE="submit" VALUE="Upload File" ></p></td></tr>
<table>
</center>
</FORM>
</BODY>
</HTML>
upload.jsp
<%@page import="java.util.List"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.omg.PortableServer.Servant"%>
<%@page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@page import="java.nio.file.Paths"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<%@page import ="java.util.Date" %>
<%@page import ="java.io.*" %>
<%@page import ="java.io.FileNotFoundException" %>
<%@page import ="java.io.IOException" %>
<%@page import ="java.util.Iterator" %>
<%@page import ="java.util.ArrayList" %>
<%@page import="org.apache.poi.hssf.usermodel.*" %>
<%@page import ="org.apache.poi.hssf.usermodel.HSSFCell" %>
<%@page import ="org.apache.poi.hssf.usermodel.HSSFRow" %>
<%@page import ="org.apache.poi.hssf.usermodel.HSSFSheet" %>
<%@page import ="org.apache.poi.hssf.usermodel.HSSFWorkbook" %>
<%@page import ="org.apache.poi.poifs.filesystem.POIFSFileSystem" %>
<%@page import="org.apache.poi.ss.usermodel.Cell" %>
<%@page import ="org.apache.poi.ss.usermodel.Row"%>
<%@page import="org.apache.poi.ss.usermodel.Sheet" %>
<%@page import="org.apache.poi.ss.usermodel.Workbook" %>
<%@page import="com.oreilly.servlet.MultipartRequest" %>
<%@page import="org.apache.poi.xssf.usermodel.*"%>
<%@page import="org.apache.poi.xssf.usermodel.XSSFWorkbook"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
try
{
ArrayList CellArrayListHolder=new ArrayList();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@172.18.114.213:1831:godb","xe","se");
String contentType = request.getContentType();
if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) {
DataInputStream in = new DataInputStream(request.getInputStream());
int formDataLength = request.getContentLength();
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
while (totalBytesRead < formDataLength) {
byteRead = in.read(dataBytes, totalBytesRead,formDataLength);
totalBytesRead += byteRead;
}
String file = new String(dataBytes);
String saveFile = file.substring(file.indexOf("filename=\"") + 10);
saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
out.println(saveFile);
int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex + 1,contentType.length());
int pos;
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
int boundaryLocation = file.indexOf(boundary, pos) - 4;
int startPos = ((file.substring(0, pos)).getBytes()).length;
int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
FileOutputStream fileOut = new FileOutputStream(saveFile);
fileOut.write(dataBytes, startPos, (endPos - startPos));
fileOut.flush();
fileOut.close();
%>
<%
PreparedStatement psmnt = null;
FileInputStream fis;
File file1 = new File(saveFile);
FileInputStream file_inut=new FileInputStream(file1);
XSSFWorkbook workbook=new XSSFWorkbook(file_inut);
Sheet firstsheet=workbook.getSheetAt(0);
Iterator<Row> iterator=firstsheet.iterator();
int count=0;
while(iterator.hasNext())
{
XSSFRow nextrow=(XSSFRow)iterator.next();
ArrayList rowarraylist=new ArrayList();
Iterator<Cell> cellIterator=nextrow.cellIterator();
while(cellIterator.hasNext())
{
XSSFCell cell=(XSSFCell)cellIterator.next();
rowarraylist.add(cell);
}
CellArrayListHolder.add(rowarraylist);
}
out.println(CellArrayListHolder);
ArrayList rowarraylist=null;
PreparedStatement st=con.prepareStatement("insert into DYNAMIC_INSERT values(?)");
for(int i=1;i<CellArrayListHolder.size();i++)
{
rowarraylist=(ArrayList)CellArrayListHolder.get(i);
//st.setString(1, file_name);
st.setString(1, rowarraylist.get(0).toString());
//st.executeUpdate();
count=st.executeUpdate();
}
if(count>0)
{
out.println("<script type=\"text/javascript\">");
out.println("alert('File added');");
out.println("location='xlsUpload.html';");
out.println("</script>");
}
}
}
catch(Exception ex)
{
out.println("<script type=\"text/javascript\">");
out.println("alert('File not found');");
out.println("location='xlsUpload.html';");
out.println("</script>");
}
%>
</body>
</html>