java - Tomcat创建0字节文件

标签 java selenium tomcat5.5

我在java中有一个非常简单的文件上传机制。我只是获取文件并将其保存在服务器上。我正在使用 selenium 测试这个简单的代码,当 selenium 测试中发生超时时,tomcat 会在 tomcat_home/work/Catalina/localhost/uploadServlet/目录下创建 0 字节文件作为 MultiPart* 文件。它会创建数千个文件,直到设备上没有剩余磁盘空间。什么可能导致这个问题?我该如何解决这个问题?有人对此有想法吗?

我的环境是:Ubuntu - 8.04 服务器,apache tomcat - 5.5.29,sun java 1.6

谢谢

这是我使用的代码片段

    String strFileName = request.getParameter("FileName");
    String strPath = request.getParameter("Path");
    File fFile = (File) request.getAttribute("Content");

    int index = strPath.length() - 1; 
    if (strPath.charAt(index) != '/') {
        strPath += "/";
    }
    if (! new File(strPath).exists()) {
        new File(strPath).mkdirs();
    }
    File file = new File(strPath + strFileName);
    FileOutputStream fileOutputStream = new FileOutputStream(file);
    FileInputStream fileInputStream = new FileInputStream(fFile);

    byte[] bBuf = new byte[1024];

    int iBufLen = 0;
    int iReadLen = 1024;
    int iTotelLen = 0;
    /*read 1024 bytes at a time*/
    while ((iBufLen = fileInputStream.read(bBuf)) != -1) {
        fileOutputStream.write(bBuf);
        fileOutputStream.flush();
        iTotelLen += iBufLen;
        if (fileInputStream.available() < iReadLen) {
            iReadLen = fileInputStream.available();
            break;
        }
    }

    byte[] tempbBuf = new byte[iReadLen];
    fileInputStream.read(tempbBuf, 0, iReadLen);

    fileOutputStream.write(tempbBuf);

    fileOutputStream.close();
    fileInputStream.close();

    if (fFile.exists()) {
        fFile.delete();
    }

最佳答案

我用过apache commons file upload类,我删除了最后部分中的临时文件。通过此实现解决了问题。

关于java - Tomcat创建0字节文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157144/

相关文章:

java - IllegalStateException 的原因

java - Tomcat-Spring-Hibernate Web 应用程序中的 'PermGen out of space' 异常可以做什么?

java - 使用嵌入式 tomcat 服务器时发出警告

java - 如何设置拨出电话延迟

javascript - 想要断言页面源代码中是否存在文本

node.js - 了解 npm 的 "skippingAction Module is inside a symlinked module"

python - 无法从 WebElement 检索特定属性

java - 如何从 servlet 使用保存文件对话框?

java - Hibernate 应用程序中 OneToMany 关联集合为 null

java - 在 Ubuntu 14.04 64 位上运行 Spoon 时出错