Java 将excel文件放入工作簿时找不到文件

Java 将excel文件放入工作簿时找不到文件,java,database,excel,jxl,Java,Database,Excel,Jxl,我有一个程序,将上传excel文件,然后将其内容放入数据库 这部分代码在我尝试上载excel文件时起作用, 以下是我上传excel文件的代码: public class uploadFile extends FileUploadAction { public boolean processRequest(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response) { if ((request.ge

我有一个程序,将上传excel文件,然后将其内容放入数据库

这部分代码在我尝试上载excel文件时起作用, 以下是我上传excel文件的代码:

public class uploadFile extends FileUploadAction
{
public boolean processRequest(HttpServlet servlet, HttpServletRequest request,  HttpServletResponse response)
{
if ((request.getContentType() != null)){
  try {
    Properties appProperties = getAppProperties();
    String dbMap = appProperties.getProperty("dbMap");
    DB db = getDBConnection(dbMap);
    String fileSavePathTemp = appProperties.getProperty("filesavepathtemp");
    MultipartParser parser = new MultipartParser(request, 10485760);
    Part _part = null;

    String urlVars = "";
    String fname = "";

    while ((_part = parser.readNextPart()) != null)
    {
      if (_part.isFile())
      {
        FilePart fPart = (FilePart)_part;

        long fileSize = 0L;
        fname = request.getParameter("filename");

        if (fname != null)
        {
         fileSize = fPart.writeTo(new File(fileSavePathTemp + System.getProperty("file.separator") + fname));
          urlVars = urlVars + "fileName=" + URLEncoder.encode(fname, "UTF-8") + "&";         
        }  
        continue;

      }
      ParamPart pPart = (ParamPart)_part;

      urlVars = urlVars + pPart.getName() + "=" + URLEncoder.encode(pPart.getStringValue(), "UTF-8") + "&";
    }

    response.sendRedirect("AppServlet?" + urlVars);
    return false;
  } catch (Exception e) {
    System.out.println("Error on uploadFile class: " + e.toString());
    request.setAttribute("msgTitle", "File upload failed");
    request.setAttribute("message", e.toString());
  }
}

return true;
}
}
 File srcFile = new File(fname);
 try{
          Workbook workbook = Workbook.getWorkbook(srcFile); //new File(dirname+fileName));
          Sheet mySheet = workbook.getSheet(0);
          int p = mySheet.getRows();
          for (int row = 0; row <= mySheet.getRows()-1; row++)
          {
           String material = mySheet.getCell(0, row).getContents();
           double price = Double.parseDouble(mySheet.getCell(1,row).getContents());
          //Insert the contents of the excelfile to the temporary table   
           db.sqlExecute("insert into TEMP_4252013 (material,price)  values ('" +material+"','"+price+"')");     
           db.sqlExecute("commit");    
          }
          }catch(Exception e){
              e.printStackTrace();
          }
以下是获取excel文件内容的代码:

public class uploadFile extends FileUploadAction
{
public boolean processRequest(HttpServlet servlet, HttpServletRequest request,  HttpServletResponse response)
{
if ((request.getContentType() != null)){
  try {
    Properties appProperties = getAppProperties();
    String dbMap = appProperties.getProperty("dbMap");
    DB db = getDBConnection(dbMap);
    String fileSavePathTemp = appProperties.getProperty("filesavepathtemp");
    MultipartParser parser = new MultipartParser(request, 10485760);
    Part _part = null;

    String urlVars = "";
    String fname = "";

    while ((_part = parser.readNextPart()) != null)
    {
      if (_part.isFile())
      {
        FilePart fPart = (FilePart)_part;

        long fileSize = 0L;
        fname = request.getParameter("filename");

        if (fname != null)
        {
         fileSize = fPart.writeTo(new File(fileSavePathTemp + System.getProperty("file.separator") + fname));
          urlVars = urlVars + "fileName=" + URLEncoder.encode(fname, "UTF-8") + "&";         
        }  
        continue;

      }
      ParamPart pPart = (ParamPart)_part;

      urlVars = urlVars + pPart.getName() + "=" + URLEncoder.encode(pPart.getStringValue(), "UTF-8") + "&";
    }

    response.sendRedirect("AppServlet?" + urlVars);
    return false;
  } catch (Exception e) {
    System.out.println("Error on uploadFile class: " + e.toString());
    request.setAttribute("msgTitle", "File upload failed");
    request.setAttribute("message", e.toString());
  }
}

return true;
}
}
 File srcFile = new File(fname);
 try{
          Workbook workbook = Workbook.getWorkbook(srcFile); //new File(dirname+fileName));
          Sheet mySheet = workbook.getSheet(0);
          int p = mySheet.getRows();
          for (int row = 0; row <= mySheet.getRows()-1; row++)
          {
           String material = mySheet.getCell(0, row).getContents();
           double price = Double.parseDouble(mySheet.getCell(1,row).getContents());
          //Insert the contents of the excelfile to the temporary table   
           db.sqlExecute("insert into TEMP_4252013 (material,price)  values ('" +material+"','"+price+"')");     
           db.sqlExecute("commit");    
          }
          }catch(Exception e){
              e.printStackTrace();
          }
File srcFile=新文件(fname);
试一试{
工作簿=工作簿.get工作簿(srcFile);//新文件(dirname+fileName));
工作表mySheet=workbook.getSheet(0);
int p=mySheet.getRows();
对于(int row=0;row这是什么?)

}catch(Exception e){
          e.printStackTrace();
}
双重捕获

} catch (Exception e) {
System.out.println("Error on uploadFile class: " + e.toString());
}

您已将文件写入
filesavepathttemp+System.getProperty(“file.separator”)+fname
,但您正在从
fname
读取文件

这就是为什么会出现
java.io.FileNotFoundException

尝试:


对不起,忘了卸下另一个锁扣。