Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload “找不到文件”异常,该代码段在其他项目中可以完美地工作_File Upload_Playframework_Playframework 1.x - Fatal编程技术网

File upload “找不到文件”异常,该代码段在其他项目中可以完美地工作

File upload “找不到文件”异常,该代码段在其他项目中可以完美地工作,file-upload,playframework,playframework-1.x,File Upload,Playframework,Playframework 1.x,下面这个Scipet工作得很好,我已经在许多项目中使用过它。然而,对于这一个项目,我得到一个文件未找到异常 try { FileInputStream is = new FileInputStream(file); String original = file.getName(); Logger.debug("Filename in upload pf %s ", original); IOUtils.copy(is, new F

下面这个Scipet工作得很好,我已经在许多项目中使用过它。然而,对于这一个项目,我得到一个文件未找到异常

try {
        FileInputStream is = new FileInputStream(file);
        String original = file.getName();

        Logger.debug("Filename in upload pf %s ", original);
        IOUtils.copy(is, new FileOutputStream(Play.getFile(original)));

        PfParser p1 = new PfParser();
        p1.read(original, month, year);

        Payroll.index();

    } catch (FileNotFoundException e) {
        Logger.error(e, "Exception in uploadSheet: ");
        e.printStackTrace();
    } catch (IOException e) {
        Logger.error(e, "Exception in uploadSheet: ");
        e.printStackTrace();
    }
这是read方法,我在其中尝试了一些组合,这些组合被注释掉了:

FileInputStream myInput = new FileInputStream(
                System.getProperty("user.dir") + inputFile);
        w = Workbook.getWorkbook(myInput);
        // w = Workbook.getWorkbook(new File(inputFile));
        // w = Workbook.getWorkbook(new File(System.getProperty("user.dir"),
        // inputFile));
这会将文件上载到
C:\ProgramFiles(x86)\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\application
文件夹

我正在尝试使用Jetcel读取excel文件。我在服务器上遇到的错误:

java.io.FileNotFoundException: foo.xls (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
我理解这是一个与绝对路径和相对路径相关的问题,但似乎找不到解决方案。在我的本地机器Ubuntu上进行编码和测试时,我没有收到任何错误。只有当我部署到Windows服务器时,我才会遇到这些问题


谢谢。

如果文件不在您在FileInputStream构造函数中提供的绝对/相对路径上,则会出现FileNotFound异常

FileInputStream is = new FileInputStream(file);

我怀疑您在FileInputStream构造函数中没有给出正确的位置。如果您编写完整的spinet,包括文件位置等,那就太好了。

我将行从

IOUtils.copy(即新文件outputstream(Play.getFile(original))

IOUtils.copy(即新文件输出流(“./”+原始文件))


Upload now works.

也在谷歌上搜索了很多,vogella上的解决方案也没有帮助。该文件已成功上载到
C:\Program Files(x86)\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\application
文件名,没有任何路径。它可能是
System.getProperty中的变体/更改(“user.dir”)
这在Ubuntu和Windows平台上可能有所不同。另外,请注意这两个平台的文件系统。因为在UNIX上使用“/”和在Windows上使用“\”来引用文件。我继续阅读,Java文件方法非常好地管理分隔符路径。
FileInputStream is = new FileInputStream(file);