java.io.FileNotFoundException:<excel filename =“”>系统找不到指定的文件

时间:2017-01-21 09:43:39

标签: java jsp

我收到以下错误消息。我要将excel表数据插入MYSQL数据库。当我上传Excel表并按下提交按钮时,发生以下异常。

java.io.FileNotFoundException: studentsdetails1.xls (The system cannot find the file specified) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source)

这是我的代码。在这里,我将把excel文件数据插入数据库。

index.jsp-

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"           "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form  action ="Excel.jsp"  method="post"  >

    <input type="file" name= "excelfile" size="20" id="file"  />
      <input type="submit" value="Submit" />
</form>
</body>
</html>

Excel.jsp -

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"              `"http://www.w3.org/TR/html4/loose.dtd">  `
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%@ page import ="java.util.Date" %>
<%@ page import ="java.sql.*" %>
 <%@ 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 ="javax.servlet.http.HttpServletRequest"%>
   <%@ 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 ="akshay.Exceltest" %>
    <%@ page import ="org.apache.poi.poifs.filesystem.POIFSFileSystem" %>

  <%!     
  Connection con;
  PreparedStatement ps=null;
  Statement stmt= null;
  public static ArrayList readExcelFile(String fileName)
    {
     /** --Define a ArrayList
        --Holds ArrayList Of Cells
      */
      System.out.println(fileName);

       ArrayList cellArrayLisstHolder = new ArrayList();

      try{
        /** Creating Input Stream**/
        FileInputStream myInput = new FileInputStream(fileName);

       /** Create a POIFSFileSystem object**/
       POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);

        /** Create a workbook using the File System**/
        HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);

        /** Get the first sheet from workbook**/
         HSSFSheet mySheet = myWorkBook.getSheetAt(0);

        /** We now need something to iterate through the cells.**/
            Iterator rowIter = mySheet.rowIterator();
          while(rowIter.hasNext()){
            HSSFRow myRow = (HSSFRow) rowIter.next();
              Iterator cellIter = myRow.cellIterator();
            ArrayList cellStoreArrayList=new ArrayList();
               while(cellIter.hasNext()){
                  HSSFCell myCell = (HSSFCell) cellIter.next();
                  cellStoreArrayList.add(myCell);
              }
             cellArrayLisstHolder.add(cellStoreArrayList);
        }
       }catch (Exception e){e.printStackTrace(); }
       return cellArrayLisstHolder;
      }%>
      <%
       String file = request.getParameter("excelfile");

        String fileName=""+file+""; //testExcel.xls Excel File name

           //Read an Excel File and Store in a ArrayList
               ArrayList dataHolder=readExcelFile(fileName);
              //Print the data read
               //printCellDataToConsole(dataHolder);

          try
               {
              Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/<dtatabse>", "name", "password"); 

                stmt =con.createStatement();
               String query="insert into students12(id,name,age) values(?,?,?)";

              ps=con.prepareStatement(query);
             int count=0;
           ArrayList cellStoreArrayList=null;

           //For inserting into database
            for(int i=1;i<dataHolder.size();i++) {
               cellStoreArrayList=(ArrayList)dataHolder.get(i);
               ps.setString(1,((HSSFCell)cellStoreArrayList.get(0)).toString());
               ps.setString(2,((HSSFCell)cellStoreArrayList.get(1)).toString());
               ps.setString(3,((HSSFCell)cellStoreArrayList.get(2)).toString());
                 count= ps.executeUpdate();
                 //out.print(((HSSFCell)cellStoreArrayList.get(2)).toString() + "\t");
                      }

              //For checking data is inserted or not?
                 if(count>0)
                { 
                 %>

                              Following deatils from Excel file have been inserted in student table of database
                           <table>
                               <tr>
                                  <th>Student's Name</th>
                                 <th>Class</th>
                                 <th>Age</th>
                              </tr>

               <% 

              for (int j=1;j < dataHolder.size(); j++) {
          cellStoreArrayList=(ArrayList)dataHolder.get(j);%>
            <tr>
                <td><%=((HSSFCell)cellStoreArrayList.get(0)).toString() %></td>
                <td><%=((HSSFCell)cellStoreArrayList.get(1)).toString() %></td>
                <td><%=((HSSFCell)cellStoreArrayList.get(2)).toString() %></td>
           </tr>
         <%}
              }
             else
                {%>
             <center> Details have not been inserted!!!!!!!!!</center>

                       <%    }   
                    }catch(Exception e)
                 {}%>
                </table>

                 </body>
</html>

1 个答案:

答案 0 :(得分:0)

enctype="multipart/form-data"中添加form

  <form  action ="Excel.jsp"  method="post" enctype="multipart/form-data" >

休息看起来不错。